Observar las circunvoluciones
Inspeccionar las activaciones de una capa convolucional es una pasada. Hay que hacerlo al menos una vez en la vida.
Para ello, construirás un nuevo modelo con el objeto Keras Model
, que recibe una lista de entradas y una lista de salidas. Las salidas que proporcionará a este nuevo modelo son las salidas de la primera capa convolucional cuando se le da un MNIST dígito como imagen de entrada.
El convolucional model
que construyó en el ejercicio anterior ya ha sido entrenado para usted. Ahora puede clasificar correctamente MNIST imágenes manuscritas. Puedes comprobarlo con model.summary()
en la consola.
Veamos las máscaras convolucionales aprendidas en la primera capa convolucional de este modelo.
Este ejercicio forma parte del curso
Introducción al aprendizaje profundo con Keras
Instrucciones de ejercicio
- Obtener una referencia de las salidas de la primera capa convolucional del modelo.
- Construya un nuevo modelo utilizando la entrada de la primera capa del modelo y las
first_layer_output
como salidas. - Utilice este
first_layer_model
para predecir enX_test
. - Trace las activaciones del primer dígito de
X_test
para el filtro de la 15ª y la 18ª neurona.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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()