ÎncepețiÎncepe gratuit

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

Vezi cursul

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 dimensiune d_ff între straturi.
  • Trece intrarea prin straturi și prin funcția de activare în metoda forward().
  • Instanțiază FeedForwardSubLayer folosind valorile furnizate pentru d_model și d_ff (setate la 512, respectiv 2048) ș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}")
Editează și rulează codul