Bắt đầu ngayBắt đầu miễn phí

Các lớp con feed-forward

Các lớp con feed-forward ánh xạ đầu ra attention thành các biểu diễn phi tuyến tính trừu tượng để nắm bắt tốt hơn các mối quan hệ phức tạp.

Trong bài tập này, bạn sẽ tạo FeedForwardSubLayer cho transformer chỉ có encoder. Lớp này gồm hai lớp tuyến tính với một hàm kích hoạt ReLU ở giữa. Nó cũng nhận hai tham số, d_modeld_ff, lần lượt biểu thị số chiều của embedding đầu vào và số chiều trung gian giữa hai lớp tuyến tính.

d_modeld_ff đã được cung cấp sẵn để bạn sử dụng.

Bài tập này là một phần của khóa học

Các mô hình Transformer với PyTorch

Xem khóa học

Hướng dẫn bài tập

  • Định nghĩa lớp tuyến tính thứ nhất và thứ hai cùng hàm kích hoạt ReLU cho lớp con feed-forward, sử dụng d_model và một kích thước d_ff ở giữa các lớp.
  • Truyền đầu vào qua các lớp và hàm kích hoạt trong phương thức forward().
  • Khởi tạo FeedForwardSubLayer với d_modeld_ff đã cho (lần lượt là 5122048) và áp dụng nó lên embedding đầu vào x.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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}")
Chỉnh sửa và Chạy Mã