Bắt đầu ngayBắt đầu miễn phí

Xây dựng transformer encoder–decoder

Giờ đây bạn đã cập nhật lớp DecoderLayer, và các thay đổi tương ứng cũng đã được áp dụng cho TransformerDecoder, bạn đã sẵn sàng ghép mọi thứ lại với nhau. Vì bạn đã xây dựng các lớp theo kiểu mô-đun và phân cấp, bạn chỉ cần khởi tạo hai lớp để dựng nên transformer encoder–decoder: TransformerDecoderTransformerEncoder.

Bài tập này là một phần của khóa học

Các mô hình Transformer với PyTorch

Xem khóa học

Hướng dẫn bài tập

  • Hoàn thiện bước forward() để tính toán đầu ra của encoder và decoder.
  • Khởi tạo và gọi transformer trên input_tokens với src_mask, tgt_mask, và cross_mask đã cho.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

class Transformer(nn.Module):
    def __init__(self, vocab_size, d_model, num_heads, num_layers, d_ff, max_seq_length, dropout):
        super().__init__()
        self.encoder = TransformerEncoder(vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length)
        self.decoder = TransformerDecoder(vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length)

    def forward(self, x, src_mask, tgt_mask, cross_mask):
        # Complete the forward pass
        encoder_output = self.encoder(____, ____)
        decoder_output = self.decoder(____, ____, tgt_mask, cross_mask)
        return decoder_output

# Instantiate and call the transformer
transformer = ____(vocab_size, d_model, num_heads, num_layers, d_ff, max_seq_length, dropout)
outputs = ____
print(outputs)
print(outputs.shape)
Chỉnh sửa và Chạy Mã