MultiHeadAttentionClass'e Başlama
Artık belirteç gömmeleri ve konumsal gömmeler oluşturmak için sınıfları tanımladığına göre, sıra çok başlı attention için bir sınıf tanımlamaya geldi. Başlamak için, attention hesaplamasında kullanılacak parametreleri ve girdi gömmelerini sorgu (query), anahtar (key) ve değer (value) matrislerine dönüştüren doğrusal katmanları, ayrıca birleştirilmiş attention ağırlıklarını yeniden gömmelere yansıtacak bir katmanı ayarla.
torch.nn, nn olarak içe aktarılmış durumda.
Bu egzersiz
PyTorch ile Transformer Modelleri
kursunun bir parçasıdırEgzersiz talimatları
- Her bir attention başının işleyeceği gömme boyutunu (
head_dim) hesapla. - Üç girdi katmanını (query, key ve value için) ve bir çıktı katmanını tanımla; girdi katmanlarından bias parametresini kaldır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
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 = ____