Der Encoder-Transformer-Body
Dein reiner Encoder-Transformer-Body ist fast fertig! Jetzt ist es an der Zeit, die Klassen InputEmbeddings, PositionalEncoding und EncoderLayer, die du zuvor erstellt hast, zu einer Klasse TransformerEncoder zu kombinieren.
Diese Übung ist Teil des Kurses
<Kurs>Transformer-Modelle mit PyTorch</Kurs>Übungsanweisungen
- Definiere die Token-Embeddings, die Positionskodierung und die Encoder-Schichten (verwende das List Comprehension, um
num_layersEncoder-Schichten zu erstellen). - Führe den Forward-Pass durch diese Schichten aus.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
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