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
Istruzioni dell'esercizio
- Usa un'istruzione
ifper 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.____ = ____