CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • 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 vous l’avez fait pour les modèles précédents : utilisez 'adam' comme optimizer, 'categorical_crossentropy' pour la loss, et metrics=['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=False dans model.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()
Modifier et exécuter le code