MulaiMulai sekarang secara gratis

Memulai MultiHeadAttentionClass

Setelah Anda mendefinisikan kelas untuk membuat token embedding dan positional embedding, sekarang saatnya mendefinisikan kelas untuk melakukan multi-head attention. Untuk memulai, siapkan parameter yang digunakan untuk perhitungan attention serta layer linear yang digunakan untuk mentransformasikan embedding masukan menjadi matriks query, key, dan value, serta satu layer untuk memproyeksikan kembali bobot attention yang digabungkan ke dalam embedding.

torch.nn telah diimpor sebagai nn.

Latihan ini adalah bagian dari kursus

Model Transformer dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Hitung dimensi embedding yang akan diproses oleh tiap kepala attention, head_dim.
  • Definisikan tiga layer masukan (untuk query, key, dan value) serta satu layer keluaran; hilangkan parameter bias dari layer masukan.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

class MultiHeadAttention(nn.Module):
    def __init__(self, d_model, num_heads):
        super().__init__()
        # Calculate the dimensions each head will process
        self.num_heads = num_heads
        self.d_model = d_model
        self.head_dim = ____
        # Define the three input layers and one output layer
        self.query_linear = nn.Linear(____, ____, bias=False)
        self.key_linear = nn.Linear(____)
        self.value_linear = ____
        self.output_linear = ____
Edit dan Jalankan Kode