Modifier les paramètres d’optimisation
Il est temps de passer à la pratique avec l’optimisation. Vous allez entraîner un modèle avec un taux d’apprentissage très faible, un très élevé, puis un « juste milieu ». Après l’exécution, examinez les résultats en gardant à l’esprit qu’une valeur faible de la fonction de perte est souhaitable.
Pour ces exercices, nous avons préchargé les prédicteurs et les valeurs cibles de vos modèles de classification précédents (prédire qui survivrait au Titanic). Vous devez repartir de zéro à chaque changement de taux d’apprentissage pour comparer équitablement leurs performances. Nous avons donc créé une fonction get_new_model() qui génère un modèle non optimisé à entraîner.
Cet exercice fait partie du cours
Introduction au Deep Learning en Python
Instructions
- Importez
SGDdepuistensorflow.keras.optimizers. - Créez une liste de taux d’apprentissage à tester appelée
lr_to_test. Elle doit contenir.000001,0.01et1. - À l’aide d’une boucle
forparcourantlr_to_test:- Utilisez la fonction
get_new_model()pour construire un nouveau modèle non optimisé. - Créez un optimiseur appelé
my_optimizeravec le constructeurSGD()et l’argument nommélr=lr. - Compilez votre modèle. Définissez le paramètre
optimizersur l’objet SGD créé ci‑dessus et, comme il s’agit d’un problème de classification, utilisez'categorical_crossentropy'pour le paramètreloss. - Ajustez votre modèle avec
predictorsettarget.
- Utilisez la fonction
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Import the SGD optimizer
____
# Create list of learning rates: lr_to_test
lr_to_test = ____
# Loop over learning rates
for lr in lr_to_test:
print('\n\nTesting model with learning rate: %f\n'%lr )
# Build new model to test, unaffected by previous models
model = ____
# Create SGD optimizer with specified learning rate: my_optimizer
my_optimizer = ____
# Compile the model
____
# Fit the model
____