LoslegenKostenlos starten

Feedforward-Teilschichten

Feedforward-Teilschichten bilden Attention-Ausgaben auf abstrakte, nichtlineare Repräsentationen ab, um komplexe Beziehungen besser zu erfassen.

In dieser Übung erstellst du eine FeedForwardSubLayer für deinen reinen Encoder-Transformer. Diese Schicht besteht aus zwei linearen Schichten mit einer ReLU-Aktivierungsfunktion dazwischen. Sie nimmt außerdem zwei Parameter entgegen, d_model und d_ff, die die Dimensionalität der Eingabeeinbettungen bzw. die Dimension zwischen den linearen Schichten darstellen.

d_model und d_ff stehen dir bereits zur Verfügung.

Diese Übung ist Teil des Kurses

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

Übungsanweisungen

  • Definiere die erste und zweite lineare Schicht sowie die ReLU-Aktivierung für die Feedforward-Teilschichtklasse; verwende d_model und eine Dimension d_ff zwischen den Schichten.
  • Leite die Eingabe im forward()-Methode durch die Schichten und die Aktivierungsfunktion.
  • Instanziiere die FeedForwardSubLayer mit den gegebenen d_model und d_ff (auf 512 bzw. 2048 gesetzt) und wende sie auf die Eingabeeinbettungen x an.

Interaktive praktische Übung

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

class FeedForwardSubLayer(nn.Module):
    def __init__(self, d_model, d_ff):
        super().__init__()
        # Define the layers and activation
        self.fc1 = ____
        self.fc2 = ____
        self.relu = ____

    def forward(self, x):
        # Pass the input through the layers and activation
        return self.____(self.____(self.____(x)))
    
# Instantiate the FeedForwardSubLayer and apply it to x
feed_forward = ____
output = ____
print(f"Input shape: {x.shape}")
print(f"Output shape: {output.shape}")
Code bearbeiten und ausführen