Aan de slagBegin gratis

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

Bekijk cursus

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.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan 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