Kom igångKom igång gratis

Bygg encoder-decoder-transformern

Nu när du har uppdaterat klassen DecoderLayer och motsvarande ändringar har gjorts i TransformerDecoder, är det dags att sätta ihop allt. Tack vare att du har byggt dina klasser på ett modulärt och hierarkiskt sätt behöver du bara instansiera två av dem för att bygga encoder-decoder-transformern: TransformerDecoder och TransformerEncoder.

Den här övningen är en del av kursen

Transformermodeller med PyTorch

Visa kurs

Övningsinstruktioner

  • Slutför forward()-passet för att beräkna encoder- och decoderresultaten.
  • Instansiera och anropa transformern på input_tokens med hjälp av src_mask, tgt_mask och cross_mask.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

class Transformer(nn.Module):
    def __init__(self, vocab_size, d_model, num_heads, num_layers, d_ff, max_seq_length, dropout):
        super().__init__()
        self.encoder = TransformerEncoder(vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length)
        self.decoder = TransformerDecoder(vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length)

    def forward(self, x, src_mask, tgt_mask, cross_mask):
        # Complete the forward pass
        encoder_output = self.encoder(____, ____)
        decoder_output = self.decoder(____, ____, tgt_mask, cross_mask)
        return decoder_output

# Instantiate and call the transformer
transformer = ____(vocab_size, d_model, num_heads, num_layers, d_ff, max_seq_length, dropout)
outputs = ____
print(outputs)
print(outputs.shape)
Redigera och kör kod