Modifier les paramètres d'optimisation
C'est le moment de mettre les mains à la pâte avec l'optimisation. Vous allez maintenant optimiser un modèle avec un taux d'apprentissage très faible, un très élevé et un « juste milieu ». Après l'exécution de cet exercice, examinez les résultats en gardant en tête qu'une faible valeur de la fonction de perte est un bon signe.
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 voudrez que l'optimisation reparte de zéro chaque fois que vous changez le taux d'apprentissage, afin de comparer équitablement les performances de chaque taux d'apprentissage dans vos résultats. Nous avons donc créé une fonction get_new_model() qui génère un modèle non optimisé à optimiser.
Cette activité fait partie du cours
Introduction à Deep Learning en Python
Instructions de l’exercice
- Importez
SGDdepuistensorflow.keras.optimizers. - Créez une liste de taux d'apprentissage à tester pour l'optimisation appelée
lr_to_test. Les taux d'apprentissage qu'elle contient doivent être.000001,0.01et1. - À l'aide d'une boucle
forpour itérer surlr_to_test:- Utilisez la fonction
get_new_model()pour construire un nouveau modèle non optimisé. - Créez un optimiseur nommé
my_optimizerà l'aide du constructeurSGD()avec l'argument nommélr=lr. - Compilez votre modèle. Attribuez au paramètre
optimizerl'objet SGD créé ci-dessus et, comme il s'agit d'un problème de classification, utilisez'categorical_crossentropy'pour le paramètreloss. - Entraînez votre modèle en utilisant
predictorsettarget.
- Utilisez la fonction
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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
____