1
resposta

[Projeto] Aula 5 — Carregamento de Dados II (PyTorch): early stopping + melhor modelo restaurado

Pessoal, compartilho aqui meu notebook da última aula do curso. Mantive a estrutura do material e adicionei mecanismos de reprodutibilidade e treino mais robusto (early stopping + restauração do melhor estado).


O que foi alterado/melhorado

  • Restauração do melhor modelo: importei copy e salvo uma cópia profunda de state_dict() quando a val loss melhora; no fim do treino, restauro os melhores pesos.
  • Hiperparâmetros: lr=1e-3, weight_decay=1e-5, early_stopping_patience=20.
  • Seeds globais: torch.manual_seed, np.random.seed, torch.cuda.manual_seed_all (quando aplicável).
  • Escalonamento: uso StandardScaler apenas nas features, mantendo o alvo na escala original; isso ajuda a estabilizar gradientes antes de reduzir a taxa de aprendizado.
  • Early stopping: monitora a menor loss de validação, interrompe após 20 épocas sem melhora real e restaura os pesos da “época campeã”.

Resultados (resumo dos logs)

Local (CPU)

  • Melhor época: 185val loss 28.6814.
  • Treino foi até a época 199 (limite), e no final restaurei o estado da época 185.

Colab (GPU / CUDA)

  • Early stopping ativado na época 132.
  • Melhor época: 112val loss 27.6826.
  • Modelo restaurado para a época 112.

Os tempos por época e desvios padrão estão nos logs do notebook.


Nota sobre reprodutibilidade

Mesmo com seeds fixas, ao usar DataLoader(num_workers>0) os batches podem ser embaralhados em threads diferentes; além disso, CPU x GPU podem divergir levemente (FMA, kernels do cuDNN, etc.). Por isso é comum a “época campeã” mudar entre ambientes.

Espero que ajude quem está fechando o curso e quer métricas/logs mais confiáveis para comparar execuções.

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi, Carlos! Como vai?

Agradeço por compartilhar seus aprendizados com a comunidade Alura.

Gostei da forma como você aprimorou o projeto, incluindo early stopping e restauração do melhor modelo, esses ajustes tornam o treinamento mais eficiente e garantem resultados mais estáveis. Sua observação sobre reprodutibilidade entre CPU e GPU mostra um excelente entendimento das nuances práticas do PyTorch.

Continue explorando essas melhorias! Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar:

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!