Modo de Treinamento vs Avaliação
Entenda por que model.train() e model.eval() são diferentes
Modo de Treinamento vs Avaliação é uma aula grátis de Deep Learning Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Deep Learning Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Deep Learning Academy inclui 4 aulas no total.
Um Modelo Tem Duas Faces
Sua rede se comporta de maneira diferente enquanto aprende e enquanto é testada. O PyTorch chama esses dois estados de modo train e modo eval. 🎭
Mude para o Modo train
Antes do treinamento, chame model.train. Isso informa a cada camada que ela deve se comportar da maneira adequada enquanto o modelo está aprendendo ativamente com os dados.
model.train()Mude para o Modo eval
Antes de validar ou fazer previsões, chame model.eval. Agora a rede muda para seu comportamento estável e determinístico, permitindo uma medição confiável.
model.eval()O Dropout se Importa
O Dropout zera neurônios aleatoriamente durante o treinamento para evitar o sobreajuste. No modo eval, ele é completamente desativado, para que todos os neurônios contribuam para a previsão.
A Normalização de Lote Também se Importa
A normalização de lote usa as estatísticas de cada lote durante o treinamento, mas muda para médias móveis armazenadas durante a avaliação, produzindo saídas estáveis e consistentes.
É Apenas uma Alternância
Essas chamadas não treinam nem testam nada por si mesmas. Elas simplesmente alteram uma flag que informa às camadas de dropout e normalização qual comportamento usar.
eval Não É no_grad
Uma confusão comum: eval altera o comportamento das camadas, enquanto no_grad interrompe o rastreamento dos gradientes. Eles resolvem problemas diferentes, portanto normalmente você usa ambos juntos.
model.eval()
with torch.no_grad():
pred = model(x)Esquecer eval Prejudica
Se você validar sem eval, o dropout e a normalização de lote manterão o comportamento de treinamento. Suas pontuações ficarão instáveis e parecerão piores do que o modelo realmente é.
Esquecer train Prejudica
O inverso também é prejudicial: se você deixar o modelo em eval, o dropout nunca será ativado, e sua regularização desaparecerá silenciosamente durante o treinamento.
Incorpore Isso ao Loop
Transforme a alternância em um hábito: defina train antes da etapa de treinamento e eval antes da validação, em todas as épocas, para que o modelo nunca permaneça no modo errado.
for epoch in range(epochs):
model.train()
# ... train ...
model.eval()
# ... validate ...Uma Pequena Chamada, um Grande Efeito
São duas chamadas minúsculas, mas elas determinam se suas métricas são confiáveis. Trate a alternância de modo como uma parte indispensável de todo loop.
Verificação Rápida
O que chamar model.eval() realmente altera?
Recapitulação
Você aprendeu os dois modos: train ativa o dropout e as estatísticas dos lotes; eval torna tudo determinístico. Alterne a cada época e combine eval com no_grad. 🎉
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Modo de Treinamento vs Avaliação” é grátis?
Sim — o texto completo de “Modo de Treinamento vs Avaliação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Deep Learning Academy, atualize para CoddyKit PRO. O curso de Deep Learning Academy inclui 4 aulas no total.
O que vou aprender em “Modo de Treinamento vs Avaliação”?
Entenda por que model.train() e model.eval() são diferentes Você pratica Deep Learning Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Deep Learning Academy?
Nenhuma experiência prévia é necessária. Deep Learning Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Modo de Treinamento vs Avaliação”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Deep Learning Academy?
Sim. Cada aula de Deep Learning Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Passagem Direta, Perda, Retropropagação e Passo
- Escreva um Ciclo de Treinamento Mínimo
- Acompanhe a Exatidão Durante o Treinamento
- Modo de Treinamento vs Avaliação