ComenzarEmpieza gratis

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

Ver curso

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_model y una dimensión d_ff entre capas.
  • Pasa la entrada por las capas y la función de activación en el método forward().
  • Crea una instancia de FeedForwardSubLayer usando los d_model y d_ff proporcionados (ajustados a 512 y 2048, 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}")
Editar y ejecutar código