Substraturile feed-forward
Substraturile feed-forward transformă rezultatele atenției în reprezentări neliniare abstracte, pentru a surprinde mai bine relațiile complexe din date.
În acest exercițiu, vei crea un FeedForwardSubLayer pentru transformatorul tău de tip encoder-only. Acest strat va fi compus din două straturi liniare cu o funcție de activare ReLU între ele. Primește și doi parametri, d_model și d_ff, care reprezintă dimensionalitatea încorporărilor de intrare, respectiv dimensiunea dintre straturile liniare.
d_model și d_ff sunt deja disponibili pentru a fi utilizați.
Acest exercițiu face parte din cursul
Modele Transformer cu PyTorch
Instrucțiuni pentru exercițiu
- Definește primul și al doilea strat liniar, precum și activarea ReLU pentru clasa substratului feed-forward, folosind
d_modelși o dimensiuned_ffîntre straturi. - Trece intrarea prin straturi și prin funcția de activare în metoda
forward(). - Instanțiază
FeedForwardSubLayerfolosind valorile furnizate pentrud_modelșid_ff(setate la512, respectiv2048) și aplică-l pe încorporările de intrare,x.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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}")