Zacznij terazZacznij za darmo

Podwarstwy feed-forward

Podwarstwy feed-forward przekształcają wyjścia mechanizmu uwagi w abstrakcyjne, nieliniowe reprezentacje, co pozwala lepiej uchwycić złożone zależności.

W tym ćwiczeniu zbudujesz klasę FeedForwardSubLayer na potrzeby transfromatora typu encoder-only. Warstwa ta składa się z dwóch warstw liniowych z funkcją aktywacji ReLU pomiędzy nimi. Przyjmuje dwa parametry – d_model i d_ff – które odpowiadają odpowiednio wymiarowości osadzeń wejściowych oraz wymiarowi między warstwami liniowymi.

Zmienne d_model i d_ff są już dostępne i gotowe do użycia.

To ćwiczenie jest częścią kursu

Modele Transformer w PyTorch

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj pierwszą i drugą warstwę liniową oraz aktywację ReLU dla klasy podwarstwy feed-forward, używając d_model oraz wymiaru d_ff między warstwami.
  • W metodzie forward() przepuść dane wejściowe kolejno przez warstwy i funkcję aktywacji.
  • Utwórz instancję klasy FeedForwardSubLayer, korzystając z podanych wartości d_model i d_ff (odpowiednio 512 i 2048), a następnie zastosuj ją do osadzeń wejściowych x.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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}")
Edytuj i uruchom kod