← Tous les exercices
Early stopping avec patience, sur une liste de pertes
Partie 3 · ★★★
(Valeurs inventées pour l'exercice, pas des mesures du cours.) À chaque époque, on mesure la perte de validation. Si c'est la meilleure jusqu'ici, on retient l'époque (on garde une copie des poids) et on remet le compteur d'attente à 0 ; sinon, on l'augmente de 1, et quand il atteint la patience, on arrête.
Écris arret_precoce(pertes_val, patience) qui renvoie (meilleure_epoque, epoque_d_arret), les époques étant numérotées à partir de 1. Si l'attente n'atteint jamais la patience, l'entraînement va jusqu'au bout. Une perte égale à la meilleure n'est pas un progrès.
def arret_precoce(pertes_val, patience): meilleure = float("inf") meilleure_epoque = 0 attente = 0 for epoque, perte in enumerate(pertes_val, start=1): if perte ___ meilleure: meilleure = perte meilleure_epoque = epoque attente = ___ else: attente += 1 if attente == patience: return meilleure_epoque, epoque return meilleure_epoque, len(pertes_val) courbe = [0.69, 0.55, 0.48, 0.44, 0.46, 0.45, 0.47, 0.49, 0.50, 0.52, 0.54] meilleure_epoque, epoque_arret = arret_precoce(courbe, 3)
Ctrl/⌘+Entrée