IniziaInizia gratis

Blocca (freeze) i layer di un modello

Stai per eseguire il fine-tuning di un modello su un nuovo task dopo aver caricato pesi pre-addestrati. Il modello contiene tre layer lineari. Tuttavia, dato che il tuo insieme di dati è piccolo, vuoi addestrare solo l'ultimo layer lineare del modello e bloccare (freeze) i primi due layer lineari.

Il modello è già stato creato ed è disponibile nella variabile model. Userai il metodo named_parameters del modello per elencarne i parametri. Ogni parametro è descritto da un nome. Questo nome è una stringa con la seguente convenzione: x.name dove x è l'indice del layer.

Ricorda che un layer lineare ha due parametri: weight e bias.

Questo esercizio fa parte del corso

Introduzione al Deep Learning con PyTorch

Visualizza il corso

Istruzioni dell'esercizio

  • Usa un'istruzione if per controllare se un parametro è un peso del primo o del secondo layer.
  • Blocca (freeze) i pesi dei primi due layer di questo modello.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

for name, param in model.named_parameters():
  
    # Check for first layer's weight
    if name == '____':
   
        # Freeze this weight
        param.____ = ____
        
    # Check for second layer's weight
    if name == '____':
      
        # Freeze this weight
        param.____ = ____
Modifica ed esegui il codice