CommencerCommencer gratuitement

Ajouter des couches à un réseau

Vous avez découvert comment expérimenter avec des réseaux plus étendus. Dans cet exercice, vous allez essayer un réseau plus profond (avec davantage de couches cachées).

Une fois encore, vous disposez d'un modèle de base appelé « model_1 » comme point de départ. Il comporte une couche cachée, avec des unités d'10. Vous pouvez voir un résumé de la structure de ce modèle imprimé. Vous allez créer un réseau similaire avec 3 couches cachées (en conservant 10 unités dans chaque couche).

L'ajustement des deux modèles prendra à nouveau quelques instants. Veuillez donc patienter quelques secondes après avoir exécuté votre code pour voir les résultats.

Cet exercice fait partie du cours

Introduction au Deep Learning avec Python

Afficher le cours

Instructions

  • Veuillez spécifier un modèle appelé « model_2 » similaire à « model_1 », mais comportant trois couches cachées de 10 unités au lieu d'une seule couche cachée.

    • Veuillez utiliser l'input_shape pour spécifier la forme d'entrée dans la première couche cachée.

    • Veuillez utiliser l'activation « 'relu' » pour les 3 couches cachées et « 'softmax' » pour la couche de sortie, qui doit comporter 2 unités.

  • 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.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# The input shape to use in the first hidden layer
input_shape = (n_cols,)

# Create the new model: model_2
model_2 = ____

# Add the first, second, and third hidden layers
____
____
____

# Add the output layer
____

# Compile model_2
____

# Fit model 1
model_1_training = model_1.fit(predictors, target, epochs=15, validation_split=0.4, verbose=False)

# Fit model 2
model_2_training = model_2.fit(predictors, target, epochs=15, validation_split=0.4, 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