Corriger une boucle d'entraînement PyTorch
La perte de ~/vision/entrainer.py ne diminue pas et l'évaluation consomme énormément de mémoire. Corrigez la boucle :
- appareil :
device = torch.device("cuda" if torch.cuda.is_available() else "cpu"), modèle et lots déplacés avec.to(device) - entraînement :
model.train(), puis pour chaque lot dans cet ordre :optimizer.zero_grad(), calcul de la perte,loss.backward(),optimizer.step() - évaluation :
model.eval()etwith torch.no_grad(): - sauvegarde des poids :
torch.save(model.state_dict(), "modele.pt")
Lancez python3 entrainer.py --epochs 3 (depuis ~/vision) → exactitude de validation à l'époque 3 → answer val <valeur>. Que se passe-t-il sans zero_grad() ? → answer zerograd <accumulation|explosion-memoire|rien>
Contenu Premium
Ce contenu est inclus dans l'offre Premium. Le titre et le résumé restent visibles pour vous aider à choisir.
Tâches
- Boucle d'entraînement correcte
- Évaluation sans gradients et sauvegarde
- Résultat et théorie