IniziaInizia gratis

Il corpo dell'encoder transformer

Il corpo del tuo transformer solo-encoder è quasi completo! È il momento di combinare le classi InputEmbeddings, PositionalEncoding ed EncoderLayer che hai creato in precedenza in una classe TransformerEncoder.

Questo esercizio fa parte del corso

Modelli Transformer con PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci l'embedding dei token, il positional encoding e i livelli dell'encoder (usa la list comprehension per creare num_layers livelli dell'encoder).
  • Esegui il passaggio forward attraverso questi livelli.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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
Modifica ed esegui il codice