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

Decoder transformer’ı tamamlama

Decoder transformer gövdesini oluşturma zamanı! Bu, daha önce oluşturduğun InputEmbeddings, PositionalEncoding ve DecoderLayer sınıflarını birleştirmek anlamına geliyor.

Bu egzersiz

PyTorch ile Transformer Modelleri

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

Egzersiz talimatları

  • Liste üreteci ve DecoderLayer sınıfını kullanarak num_layers adet decoder katmanından oluşan bir liste tanımla.
  • Gizli durumları sözcük olasılıklarına yansıtacak bir lineer katman tanımla.
  • __init__ içinde tanımlanan katmanlar üzerinden ileri geçişi tamamla.
  • Bir decoder transformer oluştur ve input_tokens ile tgt_mask üzerinde uygula.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

class TransformerDecoder(nn.Module):
    def __init__(self, vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length):
        super(TransformerDecoder, self).__init__()
        self.embedding = InputEmbeddings(vocab_size, d_model)
        self.positional_encoding = PositionalEncoding(d_model, max_seq_length)
        # Define the list of decoder layers and linear layer
        self.layers = nn.____([____(d_model, num_heads, d_ff, dropout) for _ in range(num_layers)])
        # Define a linear layer to project hidden states to likelihoods
        self.fc = ____
  
    def forward(self, x, tgt_mask):
        # Complete the forward pass
        x = self.____(x)
        x = self.____(x)
        for layer in self.layers:
            x = ____
        x = self.____(x)
        return F.log_softmax(x, dim=-1)

# Instantiate a decoder transformer and apply it to input_tokens and tgt_mask
transformer_decoder = ____(vocab_size, d_model, num_layers, num_heads, d_ff, dropout, max_seq_length)   
output = ____
print(output)
print(output.shape)
Kodu Düzenle ve Çalıştır