Utiliser un callback EarlyStopping
L’utilisation du callback EarlyStopping
est une technique courante pour éviter le surapprentissage (overfitting) en arrêtant l’entraînement du modèle lorsque la performance sur les données de validation ne s’améliore plus. Voici comment vous pouvez le faire en utilisant TensorFlow et Keras.
Étape 1 : Importer les bibliothèques nécessaires
Tout d’abord, assurez-vous d’importer les bibliothèques nécessaires.
Étape 2 : Définir le modèle
Définissez votre modèle. Pour cet exemple, nous utiliserons un modèle simple avec quelques couches de convolution et de dense.
Étape 3 : Instancier et compiler le modèle
Instanciez et compilez votre modèle.
Étape 4 : Préparer les données
Préparez vos données d’entraînement et de test. Pour cet exemple, nous utiliserons le jeu de données MNIST.
Étape 5 : Définir les callbacks EarlyStopping et ModelCheckpoint
Définissez un objet EarlyStopping
pour arrêter l’entraînement lorsque la performance sur les données de validation ne s’améliore plus, et un objet ModelCheckpoint
pour sauvegarder le meilleur modèle.
Étape 6 : Entraîner le modèle avec les callbacks
Entraînez votre modèle en utilisant les callbacks EarlyStopping
et ModelCheckpoint
.
Code complet
Voici le code complet pour définir un modèle, préparer les données, définir les callbacks EarlyStopping
et ModelCheckpoint
, et entraîner le modèle avec ces callbacks.
Explication des paramètres de EarlyStopping
monitor
: La métrique à surveiller pour déterminer l’arrêt prématuré (par exemple,val_loss
).patience
: Le nombre d’époques sans amélioration après lesquelles l’entraînement sera arrêté.restore_best_weights
: SiTrue
, les poids du modèle seront restaurés à ceux de l’époque où la meilleure valeur de la métrique surveillée a été observée.
Explication des paramètres de ModelCheckpoint
filepath
: Le chemin où le modèle sera sauvegardé.save_best_only
: SiTrue
, seul le meilleur modèle (en termes de la métrique surveillée) sera sauvegardé.monitor
: La métrique à surveiller pour déterminer le meilleur modèle.mode
: Le mode de surveillance (‘min’ pour minimiser la métrique, ‘max’ pour maximiser la métrique).verbose
: Le niveau de verbosité (0 pour silencieux, 1 pour afficher les messages).
En utilisant ces callbacks, vous pouvez éviter le surapprentissage et sauvegarder le meilleur modèle pendant l’entraînement.