Arrêt anticipé : optimiser l’optimisation
Maintenant que vous savez comment suivre les performances de votre modèle pendant l’optimisation, vous pouvez utiliser l’arrêt anticipé pour interrompre l’optimisation lorsqu’elle n’apporte plus d’amélioration. Comme l’optimisation s’arrête automatiquement lorsqu’elle n’est plus utile, vous pouvez aussi définir une valeur élevée pour epochs dans votre appel à .fit(), comme Dan l’a montré dans la vidéo.
Le modèle que vous allez optimiser est fourni dans model. Comme précédemment, les données sont préchargées dans predictors et target.
Cet exercice fait partie du cours
Introduction au Deep Learning en Python
Instructions
- Importez
EarlyStoppingdepuistensorflow.keras.callbacks. - Compilez le modèle, à nouveau avec
'adam'commeoptimizer,'categorical_crossentropy'comme fonction de perte, etmetrics=['accuracy']pour afficher la précision à chaque époque. - Créez un objet
EarlyStoppingappeléearly_stopping_monitor. Interrompez l’optimisation si la perte de validation ne s’est pas améliorée pendant 2 époques en fixant le paramètrepatiencedeEarlyStopping()à2. - Entraînez le modèle avec
predictorsettarget. Indiquezepochsà30et utilisez une fraction de validation de0.3. De plus, passez[early_stopping_monitor]au paramètrecallbacks.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import EarlyStopping
____
# Save the number of columns in predictors: n_cols
n_cols = predictors.shape[1]
input_shape = (n_cols,)
# Specify the model
model = Sequential()
model.add(Dense(100, activation='relu', input_shape = input_shape))
model.add(Dense(100, activation='relu'))
model.add(Dense(2, activation='softmax'))
# Compile the model
____
# Define early_stopping_monitor
early_stopping_monitor = ____
# Fit the model
____