ÎncepețiÎncepe gratuit

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

Vezi cursul

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 = ____
Editează și rulează codul