Inițializarea clasei MultiHeadAttention
Acum că ai definit clase pentru crearea încorporărilor de token-uri și a încorporărilor poziționale, este momentul să definești o clasă pentru efectuarea atenției multi-cap. Ca prim pas, configurează parametrii folosiți pentru calculul atenției și straturile liniare utilizate pentru transformarea încorporărilor de intrare în matricele de interogare, cheie și valoare, precum și un strat pentru proiectarea ponderilor combinate ale atenției înapoi în încorporări.
torch.nn a fost importat ca nn.
Acest exercițiu face parte din cursul
Modele Transformer cu PyTorch
Instrucțiuni pentru exercițiu
- Calculează dimensiunile încorporărilor pe care le va procesa fiecare cap de atenție,
head_dim. - Definește cele trei straturi de intrare (pentru interogare, cheie și valoare) și un strat de ieșire; elimină parametrul de bias din straturile de intrare.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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 = ____