Expérimenter avec des réseaux plus larges
Vous avez maintenant tout ce qu'il faut pour commencer à essayer différents modèles !
Un modèle nommé model_1 a été préchargé. Vous pouvez voir un résumé de ce modèle affiché dans l'IPython Shell. Il s'agit d'un réseau relativement petit, avec seulement 10 unités dans chaque couche cachée.
Dans cet exercice, vous allez créer un nouveau modèle nommé model_2, semblable à model_1, mais avec 100 unités dans chaque couche cachée.
Après avoir créé model_2, les deux modèles seront ajustés et un graphique montrant la perte (loss) des deux modèles à chaque époque (epoch) sera affiché. Nous avons ajouté l'argument verbose=False dans les commandes d'ajustement pour afficher moins de mises à jour, puisque vous les consulterez sous forme de graphique plutôt qu'en texte.
Comme vous ajustez deux modèles, l'affichage des résultats après avoir lancé l'exécution prendra un moment ; merci de votre patience.
Cette activité fait partie du cours
Introduction à Deep Learning en Python
Instructions de l’exercice
- Créez
model_2pour reproduiremodel_1, mais utilisez100nœuds au lieu de10pour les deux premières couchesDenseque vous ajoutez avec l'activation'relu'. Utilisez2nœuds pour la couche de sortieDenseavec'softmax'commeactivation. - Compilez
model_2comme pour les modèles précédents : utilisez'adam'commeoptimizer,'categorical_crossentropy'pour la loss, etmetrics=['accuracy']. - Cliquez sur "Submit Answer" pour ajuster les deux modèles et visualiser lequel donne de meilleurs résultats ! Notez le paramètre nommé
verbose=Falsedansmodel.fit(): cela affiche moins de mises à jour, puisque vous évaluerez les modèles graphiquement plutôt que par du texte.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Define early_stopping_monitor
early_stopping_monitor = EarlyStopping(patience=2)
# Create the new model: model_2
model_2 = ____
# Add the first and second layers
____.____(____(____, ____=____, input_shape=input_shape))
____
# Add the output layer
____
# Compile model_2
____
# Fit model_1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)
# Fit model_2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.2, callbacks=[early_stopping_monitor], verbose=False)
# Create the plot
plt.plot(model_1_training.history['val_loss'], 'r', model_2_training.history['val_loss'], 'b')
plt.xlabel('Epochs')
plt.ylabel('Validation score')
plt.show()