CommencerCommencer gratuitement

Le corps du transformeur encodeur

Votre corps de transformeur « encoder-only » est presque terminé ! Il est temps de combiner les classes InputEmbeddings, PositionalEncoding et EncoderLayer que vous avez créées précédemment dans une classe TransformerEncoder.

Cet exercice fait partie du cours

Modèles Transformer avec PyTorch

Afficher le cours

Instructions

  • Définissez l’embedding de jetons, le codage positionnel et les couches d’encodeur (utilisez une compréhension de liste pour créer num_layers couches d’encodeur).
  • Effectuez le passage avant à travers ces couches.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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
Modifier et exécuter le code