Підшари feed-forward
Підшари feed-forward відображають виходи механізму уваги у абстрактні нелінійні подання, щоб краще схоплювати складні взаємозв'язки.
У цій вправі ви створите FeedForwardSubLayer для трансформера лише з енкодером. Цей шар складатиметься з двох лінійних шарів із функцією активації ReLU між ними. Він також приймає два параметри, d_model і d_ff, які відповідають за розмірність вхідних вкладень і розмірність між лінійними шарами відповідно.
d_model і d_ff уже доступні для використання.
Ця вправа є частиною курсу
Моделі Transformer з PyTorch
Інструкції до вправи
- Визначте перший і другий лінійні шари та активацію ReLU для класу підшару feed-forward, використовуючи
d_modelі розмірністьd_ffміж шарами. - Пропустіть вхідні дані через шари та функцію активації в методі
forward(). - Створіть екземпляр
FeedForwardSubLayer, використовуючи наданіd_modelіd_ff(встановлені на512і2048відповідно), і застосуйте його до вхідних вкладеньx.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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}")