Observer les convolutions
Examiner les activations d'une couche convolutionnelle, c'est vraiment intéressant. Il faut le faire au moins une fois dans sa vie!
Pour ce faire, vous allez créer un nouveau modèle avec l'objet Model de Keras, qui reçoit une liste d'entrées et une liste de sorties. Les sorties que vous fournirez à ce nouveau modèle seront celles de la première couche convolutionnelle lorsqu'on lui donne en entrée une image de chiffre MNIST.
Le model convolutionnel que vous avez construit à l'exercice précédent a déjà été entraîné pour vous. Il peut maintenant classer correctement les images manuscrites MNIST. Vous pouvez le vérifier avec model.summary() dans la console.
Voyons maintenant les masques convolutionnels appris dans la première couche convolutionnelle de ce modèle!
Cette activité fait partie du cours
Introduction à Deep Learning avec Keras
Instructions de l’exercice
- Obtenez une référence aux sorties de la première couche convolutionnelle du modèle.
- Construisez un nouveau modèle en utilisant l'entrée de la première couche du modèle et
first_layer_outputcomme sorties. - Utilisez ce
first_layer_modelpour prédire surX_test. - Tracez les activations du premier chiffre de
X_testpour les filtres de neurones 15e et 18e.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Obtain a reference to the outputs of the first layer
first_layer_output = model.layers[____].output
# Build a model using the model's input and the first layer output
first_layer_model = Model(inputs = model.layers[0].input, outputs = ____)
# Use this model to predict on X_test
activations = ____.____(____)
# Plot the activations of first digit of X_test for the 15th filter
axs[0].matshow(activations[____,:,:,14], cmap = 'viridis')
# Do the same but for the 18th filter now
axs[1].matshow(activations[0,:,:,____], cmap = 'viridis')
plt.show()