Osservare le convoluzioni
Ispezionare le attivazioni di un layer convoluzionale è una cosa davvero interessante. Dovresti farlo almeno una volta nella vita!
Per farlo, costruirai un nuovo modello con l'oggetto Model di Keras, che accetta una lista di input e una lista di output. Gli output che fornirai a questo nuovo modello sono quelli del primo layer convoluzionale quando gli passi come immagine di input una cifra MNIST.
Il model convoluzionale che hai costruito nell'esercizio precedente è già stato addestrato per te. Ora sa classificare correttamente le immagini scritte a mano di MNIST. Puoi verificarlo con model.summary() nella console.
Diamo un'occhiata alle maschere convoluzionali che sono state apprese nel primo layer convoluzionale di questo modello!
Questo esercizio fa parte del corso
Introduzione al Deep Learning con Keras
Istruzioni dell'esercizio
- Ottieni un riferimento agli output del primo layer convoluzionale nel modello.
- Costruisci un nuovo modello usando l'input del primo layer del modello e
first_layer_outputcome output. - Usa questo
first_layer_modelper fare previsioni suX_test. - Rappresenta le attivazioni della prima cifra di
X_testper i filtri del neurone 15° e 18°.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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()