LoslegenKostenlos starten

Den Encoder-Decoder-Transformer konstruieren

Nachdem du die Klasse DecoderLayer aktualisiert hast und die entsprechenden Änderungen in TransformerDecoder vorgenommen wurden, kannst du jetzt alles zusammenführen. Weil du deine Klassen modular und hierarchisch aufgebaut hast, musst du nur zwei davon instanziieren, um den Encoder-Decoder-Transformer zu erstellen: TransformerDecoder und TransformerEncoder.

Diese Übung ist Teil des Kurses

<Kurs>Transformer-Modelle mit PyTorch</Kurs>
Kurs ansehen

Übungsanweisungen

  • Vervollständige den forward()-Durchlauf, um die Encoder- und Decoder-Ausgaben zu berechnen.
  • Instanziiere den Transformer und rufe ihn mit input_tokens unter Verwendung der bereitgestellten src_mask, tgt_mask und cross_mask auf.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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 bearbeiten und ausführen