Phần thân encoder transformer
Phần thân transformer chỉ-encoder của bạn sắp hoàn thiện rồi! Đến lúc kết hợp các lớp InputEmbeddings, PositionalEncoding và EncoderLayer mà bạn đã tạo trước đó vào một lớp TransformerEncoder.
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
Hướng dẫn bài tập
- Định nghĩa token embedding, positional encoding và các lớp encoder (dùng list comprehension để tạo
num_layerslớp encoder). - Thực hiện forward pass qua các lớp này.
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 TransformerEncoder(nn.Module):
def __init__(self, vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length):
super().__init__()
# Define the embedding, positional encoding, and encoder layers
self.embedding = ____(vocab_size, d_model)
self.positional_encoding = ____(d_model, max_seq_length)
self.layers = nn.____([____(d_model, num_heads, d_ff, dropout) for _ in range(num_layers)])
def forward(self, x, src_mask):
# Perform the forward pass through the layers
x = self.____(x)
x = self.____(x)
for layer in ____:
x = layer(x, src_mask)
return x