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
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_modele uma dimensãod_ffentre as camadas. - Passe a entrada pelas camadas e pela função de ativação no método
forward(). - Instancie a
FeedForwardSubLayerusandod_modeled_fffornecidos (definidos como512e2048, 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}")