ComeçarComece de graça

Subcamadas feed-forward

As subcamadas feed-forward mapeiam as saídas de attention para representações não lineares mais abstratas, para capturar melhor relações complexas.

Neste exercício, você vai criar uma FeedForwardSubLayer para o seu transformer apenas com encoder. Essa camada será composta por duas camadas lineares com uma função de ativação ReLU entre elas. Ela também recebe dois parâmetros, d_model e d_ff, que representam, respectivamente, a dimensionalidade dos embeddings de entrada e a dimensão entre as camadas lineares.

d_model e d_ff já estão disponíveis para você usar.

Este exercício faz parte do curso

Modelos Transformer com PyTorch

Ver curso

Instruções do exercício

  • Defina a primeira e a segunda camadas lineares e a ativação ReLU para a classe da subcamada feed-forward, usando d_model e uma dimensão d_ff entre as camadas.
  • Passe a entrada pelas camadas e pela função de ativação no método forward().
  • Instancie a FeedForwardSubLayer usando d_model e d_ff fornecidos (definidos como 512 e 2048, respectivamente) e aplique-a aos embeddings de entrada, x.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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}")
Editar e executar o código