← Tous les exercices
Garder une photo figée des poids (copie, pas alias)
Partie 6 · ★★★
Dans le notebook, modele.state_dict() renvoie les poids vivants : ils continuent de changer à chaque pas. Pour garder les meilleurs, on en prend une copie figée (copy.deepcopy), puis on les remet à la fin avec load_state_dict. Version liste : poids change à chaque époque (poids[0] += 1, poids[1] -= 0.5) ; la copie se fait avec list(poids).
Complète : à chaque nouvelle meilleure époque, photographie les poids ; à la fin remets-les dans poids. Meilleure époque = 3 (validation de l'exemple ajouté), donc poids attendus [3.0, -1.5].
pertes_train = [1.90, 1.10, 0.60, 0.30, 0.12, 0.04] pertes_val = [1.80, 1.20, 1.05, 1.15, 1.40, 1.75] poids = [0.0, 0.0] meilleure_perte = float("inf") meilleurs_poids = None for epoque, perte_val in enumerate(pertes_val, start=1): poids[0] += 1.0 # l'apprentissage modifie les poids EN PLACE poids[1] -= 0.5 if perte_val < meilleure_perte: meilleure_perte = perte_val meilleurs_poids = ___(poids) poids[:] = ___
Ctrl/⌘+Entrée