IniziaInizia gratis

Sotto-livelli feed-forward

I sotto-livelli feed-forward mappano gli output dell'attenzione in rappresentazioni non lineari astratte per catturare meglio le relazioni complesse.

In questo esercizio, creerai un FeedForwardSubLayer per il tuo transformer solo-encoder. Questo livello sarà composto da due livelli lineari con una funzione di attivazione ReLU tra di loro. Accetta anche due parametri, d_model e d_ff, che rappresentano rispettivamente la dimensionalità degli embedding in input e la dimensione intermedia tra i livelli lineari.

d_model e d_ff sono già disponibili per te.

Questo esercizio fa parte del corso

Modelli Transformer con PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Definisci il primo e il secondo livello lineare e l'attivazione ReLU per la classe del sotto-livello feed-forward, usando d_model e una dimensione d_ff tra i livelli.
  • Fai passare l'input attraverso i livelli e la funzione di attivazione nel metodo forward().
  • Istanzia FeedForwardSubLayer usando i valori forniti di d_model e d_ff (impostati rispettivamente a 512 e 2048) e applicalo agli embedding di input, x.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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}")
Modifica ed esegui il codice