Aan de slagGa gratis aan de slag

De encoder-decodertransformer construeren

Nu je de klasse DecoderLayer hebt bijgewerkt, en de equivalente wijzigingen zijn doorgevoerd in TransformerDecoder, kun je alles samenvoegen. Doordat je je klassen modulair en hiërarchisch hebt opgebouwd, hoef je er maar twee te instantieren om de encoder-decodertransformer te bouwen: TransformerDecoder en TransformerEncoder.

Deze oefening maakt deel uit van de cursus

Transformermodels met PyTorch

Cursus bekijken

Oefeninstructies

  • Maak de forward()-pass af om de encoder- en decoderuitvoer te berekenen.
  • Instantieer en roep de transformer aan op input_tokens met gebruik van de meegeleverde src_mask, tgt_mask en cross_mask.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren