Observando las convoluciones
Inspeccionar las activaciones de una capa convolucional es muy interesante. ¡Tienes que hacerlo al menos una vez en la vida!
Para ello, vas a construir un modelo nuevo con el objeto Model de Keras, que recibe una lista de entradas y una lista de salidas. Las salidas que vas a proporcionar a este nuevo modelo son las salidas de la primera capa convolucional cuando se le da como imagen de entrada un dígito de MNIST.
El model convolucional que construiste en el ejercicio anterior ya está entrenado. Ahora puede clasificar correctamente imágenes manuscritas de MNIST. Puedes comprobarlo con model.summary() en la consola.
¡Veamos las máscaras convolucionales que se aprendieron en la primera capa convolucional de este modelo!
Este ejercicio forma parte del curso
Introducción al Deep Learning con Keras
Instrucciones del ejercicio
- Obtén una referencia a las salidas de la primera capa convolucional del modelo.
- Construye un modelo nuevo usando la entrada de la primera capa del modelo y
first_layer_outputcomo salidas. - Usa este
first_layer_modelpara predecir sobreX_test. - Representa las activaciones del primer dígito de
X_testpara los filtros de neuronas 15.º y 18.º.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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()