IniziaInizia gratis

Avviare la classe MultiHeadAttention

Ora che hai definito le classi per creare i token embedding e i positional embedding, è il momento di definire una classe per eseguire la multi-head attention. Per iniziare, configura i parametri usati per il calcolo dell'attenzione e i layer lineari usati per trasformare gli embedding di input nelle matrici di query, key e value, oltre a un layer per proiettare i pesi di attenzione combinati di nuovo in embedding.

torch.nn è stato importato come nn.

Questo esercizio fa parte del corso

Modelli Transformer con PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Calcola le dimensioni dell'embedding elaborate da ciascuna testa di attention, head_dim.
  • Definisci i tre layer di input (per query, key e value) e un layer di output; rimuovi il parametro di bias dai layer di input.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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 = ____
Modifica ed esegui il codice