Observer les convolutions
Inspecter les activations d’une couche convolutionnelle est vraiment instructif. Il faut le faire au moins une fois dans sa vie !
Pour cela, vous allez construire un nouveau modèle avec l’objet Keras Model, qui prend une liste d’entrées et une liste de sorties. Les sorties que vous allez fournir à ce nouveau modèle sont 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 dans l’exercice précédent a déjà été entraîné pour vous. Il sait désormais classer correctement les images manuscrites MNIST. Vous pouvez le vérifier avec model.summary() dans la console.
Observons maintenant les masques convolutionnels appris dans la première couche convolutionnelle de ce modèle !
Cet exercice fait partie du cours
Introduction au Deep Learning avec Keras
Instructions
- Récupérez une référence vers les 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 cet exemple de code.
# 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()