Congelar camadas de um modelo
Você está prestes a fazer o ajuste fino de um modelo em uma nova tarefa depois de carregar pesos pré-treinados. O modelo contém três camadas lineares. Entretanto, como o conjunto de dados é pequeno, você deseja treinar apenas a última camada linear desse modelo e congelar as duas primeiras camadas lineares.
O modelo já foi criado e existe na variável model
. Você usará o método named_parameters
do modelo para listar os parâmetros do modelo. Cada parâmetro é descrito por um nome. Esse nome é uma cadeia de caracteres com a seguinte convenção de nomenclatura: x.name
em que x
é o índice da camada.
Lembre-se de que uma camada linear tem dois parâmetros: o weight
e o bias
.
Este exercício faz parte do curso
Introdução à aprendizagem profunda com PyTorch
Instruções de exercício
- Use uma instrução
if
para determinar se o parâmetro deve ser congelado ou não com base em seu nome. - Congele os parâmetros das duas primeiras camadas desse modelo.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
for name, param in model.named_parameters():
# Check if the parameters belong to the first layer
if name == '____':
# Freeze the parameters
____.____ = ____
# Check if the parameters belong to the second layer
if name == '____':
# Freeze the parameters
____.____ = ____