Rangka utama encoder transformer
Bagian inti transformer yang hanya encoder hampir selesai! Saatnya menggabungkan kelas InputEmbeddings, PositionalEncoding, dan EncoderLayer yang sebelumnya Anda buat ke dalam sebuah kelas TransformerEncoder.
Latihan ini adalah bagian dari kursus
Model Transformer dengan PyTorch
Petunjuk latihan
- Definisikan embedding token, positional encoding, dan layer encoder (gunakan list comprehension untuk membuat
num_layerslayer encoder). - Lakukan forward pass melalui layer-layer tersebut.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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