CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Créez model_2 pour reproduire model_1, mais utilisez 100 nœuds au lieu de 10 pour les deux premières couches Dense que vous ajoutez avec l'activation 'relu'. Utilisez 2 nœuds pour la couche de sortie Dense avec 'softmax' comme activation.
  • Compilez model_2 comme pour les modèles précédents : utilisez 'adam' comme optimizer, 'categorical_crossentropy' pour la loss, et metrics=['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=False dans model.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()
Modifier et exécuter le code