Subcapas feed-forward
Las subcapas feed-forward transforman las salidas de la atención en representaciones no lineales más abstractas para captar mejor relaciones complejas.
En este ejercicio, crearás una FeedForwardSubLayer para tu transformer solo con codificador. Esta capa constará de dos capas lineales con una función de activación ReLU entre ellas. También recibe dos parámetros, d_model y d_ff, que representan la dimensionalidad de las incrustaciones de entrada y la dimensión intermedia entre las capas lineales, respectivamente.
d_model y d_ff ya están disponibles para que los uses.
Este ejercicio forma parte del curso
Modelos Transformer con PyTorch
Instrucciones del ejercicio
- Define la primera y la segunda capa lineal y la activación ReLU para la clase de subcapa feed-forward, usando
d_modely una dimensiónd_ffentre capas. - Pasa la entrada por las capas y la función de activación en el método
forward(). - Crea una instancia de
FeedForwardSubLayerusando losd_modelyd_ffproporcionados (ajustados a512y2048, respectivamente) y aplícala a las incrustaciones de entrada,x.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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}")