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 merupakan bagian dari kursus
Model Transformer dengan PyTorch
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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