MulaiMulai sekarang secara gratis

Menyelesaikan decoder transformer

Saatnya membangun tubuh decoder transformer! Ini berarti menggabungkan kelas InputEmbeddings, PositionalEncoding, dan DecoderLayer yang telah Anda buat sebelumnya.

Latihan ini adalah bagian dari kursus

Model Transformer dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Definisikan daftar num_layers lapisan decoder menggunakan list comprehension dan kelas DecoderLayer.
  • Definisikan sebuah lapisan linear untuk memetakan hidden state menjadi peluang kata.
  • Lengkapi alur forward melalui lapisan-lapisan yang didefinisikan di __init__.
  • Instansiasikan sebuah decoder transformer dan terapkan pada input_tokens dan tgt_mask.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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)
Edit dan Jalankan Kode