Lagen van een model bevriezen
Je gaat een model fine-tunen op een nieuwe taak nadat je voorgetrainde gewichten hebt geladen. Het model bevat drie lineaire lagen. Omdat je gegevensset klein is, wil je alleen de laatste lineaire laag trainen en de eerste twee lineaire lagen bevriezen.
Het model is al aangemaakt en staat in de variabele model. Je gebruikt de methode named_parameters van het model om de parameters van het model op te sommen. Elke parameter heeft een naam. Deze naam is een string met de volgende naamgevingsconventie: x.name, waarbij x de index van de laag is.
Onthoud dat een lineaire laag twee parameters heeft: de weight en de bias.
Deze oefening maakt deel uit van de cursus
Introductie tot Deep Learning met PyTorch
Oefeninstructies
- Gebruik een
if-statement om te controleren of een parameter een weight is van de eerste of tweede laag. - Vries de weights van de eerste twee lagen van dit model.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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.____ = ____