CommencerCommencer gratuitement

Sous-couches feed-forward

Les sous-couches feed-forward projettent les sorties de l’attention vers des représentations non linéaires plus abstraites pour mieux capturer des relations complexes.

Dans cet exercice, vous allez créer une FeedForwardSubLayer pour votre transformeur de type encodeur uniquement. Cette couche sera composée de deux couches linéaires séparées par une activation ReLU. Elle prend également deux paramètres, d_model et d_ff, qui représentent respectivement la dimension des plongements en entrée et la dimension intermédiaire entre les couches linéaires.

d_model et d_ff sont déjà fournis et prêts à être utilisés.

Cet exercice fait partie du cours

Modèles Transformer avec PyTorch

Afficher le cours

Instructions

  • Définissez les première et seconde couches linéaires ainsi que l’activation ReLU pour la classe de sous-couche feed-forward, en utilisant d_model et une dimension d_ff entre les couches.
  • Faites passer l’entrée à travers les couches et la fonction d’activation dans la méthode forward().
  • Instanciez la FeedForwardSubLayer en utilisant d_model et d_ff fournis (respectivement 512 et 2048), puis appliquez-la aux plongements d’entrée x.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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}")
Modifier et exécuter le code