Expérimenter avec des réseaux plus larges
Vous avez désormais tout ce qu’il faut pour commencer à expérimenter avec différents modèles !
Un modèle appelé model_1 a été préchargé. Vous pouvez voir un récapitulatif 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 appelé model_2, similaire à model_1, mais avec 100 unités dans chaque couche cachée.
Après avoir créé model_2, les deux modèles seront entraînés, et un graphique montrant la valeur de la fonction de perte de chaque modèle à chaque époque sera affiché. Nous avons ajouté l’argument verbose=False dans les commandes d’entraînement pour réduire le nombre de messages, puisque vous allez les examiner graphiquement plutôt qu’en texte.
Comme vous entraînez deux modèles, l’affichage des résultats après avoir lancé l’exécution prendra un petit moment ; merci de patienter.
Cet exercice fait partie du cours
Introduction au Deep Learning en Python
Instructions
- 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 vous l’avez fait pour les modèles précédents : utilisez'adam'commeoptimizer,'categorical_crossentropy'pour la loss, etmetrics=['accuracy']. - Cliquez sur "Soumettre la réponse" pour entraîner les deux modèles et visualiser lequel donne les meilleurs résultats ! Notez l’argument nommé
verbose=Falsedansmodel.fit(): il réduit le nombre de messages, puisque vous évaluerez les modèles graphiquement plutôt qu’en texte.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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()