Feed-forward-dellager
Feed-forward-dellager omvandlar uppmärksamhetens utdata till abstrakta, icke-linjära representationer för att bättre fånga komplexa samband.
I den här övningen skapar du ett FeedForwardSubLayer för din encoder-only-transformer. Lagret består av två linjära lager med en ReLU-aktiveringsfunktion däremellan. Det tar också emot två parametrar, d_model och d_ff, som representerar dimensionaliteten hos indatainbäddningarna respektive dimensionen mellan de linjära lagren.
d_model och d_ff är redan tillgängliga för dig att använda.
Den här övningen är en del av kursen
Transformermodeller med PyTorch
Övningsinstruktioner
- Definiera det första och andra linjära lagret samt ReLU-aktiveringen för feed-forward-dellagrets klass, med hjälp av
d_modeloch en dimensiond_ffmellan lagren. - Skicka indata genom lagren och aktiveringsfunktionen i metoden
forward(). - Instansiera
FeedForwardSubLayermed de angivna värdena förd_modelochd_ff(satta till512respektive2048) och applicera det på indatainbäddningarna,x.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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}")