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

Encoder transformer katmanı

Bir FeedForwardSubLayer sınıfı tanımlandığına göre, bir EncoderLayer sınıfını tanımlamak için gereken tüm parçalara sahipsin. Hatırla: Encoder katmanı tipik olarak çok başlı (multi-head) bir dikkat mekanizmasından ve alt katmanın giriş/çıkışlarında katman normalizasyonu ve dropout bulunan bir ileri beslemeli (feed-forward) alt katmandan oluşur.

Daha önce tanımladığın sınıflar aynı adlarla kullanılabilir durumda; ayrıca torch ve torch.nn nn olarak mevcut.

Bu egzersiz

PyTorch ile Transformer Modelleri

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

Egzersiz talimatları

  • __init__ metodunu tamamlayarak MultiHeadAttention, FeedForwardSubLayer ve iki katman normalizasyonunu örnekle.
  • forward() metodunu, çok başlı dikkat mekanizmasını ve ileri beslemeli alt katmanı doldurarak tamamla; dikkat mekanizması için sağlanan src_mark'ı ve sorgu, anahtar ve değer matrisleri olarak girdi gömlemelerini, x'i kullan.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

class EncoderLayer(nn.Module):
    def __init__(self, d_model, num_heads, d_ff, dropout):
        super().__init__()
        # Instantiate the layers
        self.self_attn = ____(d_model, num_heads)
        self.ff_sublayer = ____(d_model, d_ff)
        self.norm1 = ____
        self.norm2 = ____
        self.dropout = nn.Dropout(dropout)

    def forward(self, x, src_mask):
        # Complete the forward method
        attn_output = self.____
        x = self.norm1(x + self.dropout(attn_output))
        ff_output = self.____
        x = self.norm2(x + self.dropout(ff_output))
        return x
Kodu Düzenle ve Çalıştır