CommencerCommencer gratuitement

Expérimentation avec des réseaux plus étendus

Vous savez maintenant tout ce qu'il vous faut pour commencer à expérimenter différents modèles.

Un modèle appelé « model_1 » a été préchargé. Vous pouvez voir un résumé de ce modèle imprimé dans le shell IPython. 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 », à l'exception du nombre d'unités dans chaque couche cachée, qui est de 100.

Après avoir créé l model_2, les deux modèles seront ajustés et un graphique indiquant le score de perte des deux modèles à chaque époque s'affichera. Nous avons ajouté l'argument « verbose=False » dans les commandes d'ajustement afin d'afficher moins de mises à jour, car vous les consulterez sous forme graphique plutôt que sous forme de texte.

Étant donné que vous ajustez deux modèles, il faudra patienter quelques instants après avoir cliqué sur « Exécuter » pour voir les résultats.

Cet exercice fait partie du cours

Introduction au Deep Learning avec Python

Afficher le cours

Instructions

  • Créez l'model_2 pour reproduire l'model_1, mais utilisez les nœuds 100 à la place de 10 pour les deux premières couches d'Dense que vous ajoutez avec l'activation 'relu'. Veuillez utiliser les nœuds « 2 » 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 : En utilisant 'adam' comme optimizer, 'categorical_crossentropy' pour la perte et metrics=['accuracy'].
  • Veuillez cliquer sur « Soumettre la réponse » pour adapter les deux modèles et visualiser lequel donne les meilleurs résultats. Veuillez noter l'argument clé verbose=False dans model.fit(): Cela permet d'imprimer moins de mises à jour, car vous évaluerez les modèles graphiquement plutôt que sous forme de 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