MulaiMulai sekarang secara gratis

Lapisan decoder

Seperti encoder transformer, decoder transformer juga terdiri dari beberapa lapisan yang memanfaatkan multi-head attention dan sublayer feed-forward. Cobalah gabungkan komponen-komponen ini untuk membangun kelas DecoderLayer.

Kelas MultiHeadAttention dan FeedForwardSubLayer tersedia untuk Anda gunakan, bersama dengan tgt_mask yang telah Anda buat.

Latihan ini adalah bagian dari kursus

Model Transformer dengan PyTorch

Lihat Kursus

Petunjuk latihan

Lengkapi metode forward() untuk meneruskan embedding masukan melalui lapisan-lapisan yang didefinisikan dalam metode __init__:

  • Lakukan perhitungan attention menggunakan tgt_mask yang disediakan dan embedding masukan x untuk matriks query, key, dan value.
  • Terapkan dropout dan normalisasi lapisan pertama, norm1.
  • Lakukan penerusan melalui sublayer feed-forward, ff_sublayer.
  • Terapkan dropout dan normalisasi lapisan kedua, norm2.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

class DecoderLayer(nn.Module):
    def __init__(self, d_model, num_heads, d_ff, dropout):
        super().__init__()
        self.self_attn = MultiHeadAttention(d_model, num_heads)
        self.ff_sublayer = FeedForwardSubLayer(d_model, d_ff)
        self.norm1 = nn.LayerNorm(d_model)
        self.norm2 = nn.LayerNorm(d_model)
        self.dropout = nn.Dropout(dropout)

    def forward(self, x, tgt_mask):
        # Perform the attention calculation
        attn_output = self.____
        # Apply dropout and the first layer normalization
        x = self.____(x + self.____(attn_output))
        # Pass through the feed-forward sublayer
        ff_output = self.____(x)
        # Apply dropout and the second layer normalization
        x = self.____(x + self.____(ff_output))
        return x
Edit dan Jalankan Kode