BaşlayınÜcretsiz Başlayın

Decoder katmanı

Encoder transformer'lar gibi, decoder transformer'lar da çoklu katmanlardan oluşur ve çok başlı dikkat ile ileri beslemeli alt katmanlardan yararlanır. Bu bileşenleri birleştirerek bir DecoderLayer sınıfı oluşturmayı dene.

MultiHeadAttention ve FeedForwardSubLayer sınıfları kullanımına hazır; ayrıca oluşturduğun tgt_mask ile birlikte kullanabilirsin.

Bu egzersiz

PyTorch ile Transformer Modelleri

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

__init__ yönteminde tanımlanan katmanlardan girdileri geçirmek için forward() yöntemini tamamla:

  • Sağlanan tgt_mask'i ve girdi gömmelerini (x) sorgu, anahtar ve değer matrisleri olarak kullanarak dikkat hesaplamasını yap.
  • dropout uygula ve ilk katman normalleştirmesini (norm1) gerçekleştir.
  • İleri beslemeli alt katmandan (ff_sublayer) geçir.
  • dropout uygula ve ikinci katman normalleştirmesini (norm2) gerçekleştir.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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
Kodu Düzenle ve Çalıştır