Feed-forward podvrstvy
Feed-forward podvrstvy mapují výstupy attention mechanismu do abstraktních nelineárních reprezentací, aby lépe zachytily složité vztahy.
V tomto cvičení vytvoříš FeedForwardSubLayer pro svůj encoder-only transformer. Tato vrstva se skládá ze dvou lineárních vrstev s aktivační funkcí ReLU mezi nimi. Přijímá také dva parametry, d_model a d_ff, které představují dimenzionalitu vstupních embeddingů a dimenzi mezi lineárními vrstvami.
d_model a d_ff jsou pro tebe již připraveny.
Toto cvičení je součástí kurzu
Transformer Models with PyTorch
Pokyny k cvičení
- Definuj první a druhou lineární vrstvu a aktivační funkci ReLU pro třídu feed-forward podvrstvy s použitím
d_modela dimenzed_ffmezi vrstvami. - Předej vstup vrstvami a aktivační funkcí v metodě
forward(). - Vytvoř instanci
FeedForwardSubLayers použitím zadaných hodnotd_modelad_ff(nastavených na512, resp.2048) a aplikuj ji na vstupní embeddingyx.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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}")