Le corps de l'encodeur du transformer
Votre corps de transformer en mode encodeur seulement est presque terminé! Il est temps de combiner les classes InputEmbeddings, PositionalEncoding et EncoderLayer que vous avez créées précédemment pour former une classe TransformerEncoder.
Cette activité fait partie du cours
Modèles Transformer avec PyTorch
Instructions de l’exercice
- Définissez l'intégration des jetons, le codage positionnel et les couches d'encodeur (utilisez une compréhension de liste pour créer
num_layerscouches d'encodeur). - Effectuez le passage en avant (forward pass) à travers ces couches.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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