Observando convoluções
Inspecionar as ativações de uma camada convolucional é muito legal. Você tem que fazer isso pelo menos uma vez na vida!
Para isso, você vai construir um novo modelo com o objeto Model do Keras, que recebe uma lista de entradas e uma lista de saídas. As saídas que você fornecerá a esse novo modelo são as saídas da primeira camada convolucional quando a imagem de entrada é um dígito do MNIST.
O model convolucional que você construiu no exercício anterior já foi treinado para você. Ele agora consegue classificar corretamente imagens manuscritas do MNIST. Você pode conferir isso com model.summary() no console.
Vamos observar as máscaras convolucionais aprendidas na primeira camada convolucional desse modelo!
Este exercício faz parte do curso
Introdução ao Deep Learning com Keras
Instruções do exercício
- Obtenha uma referência às saídas da primeira camada convolucional do modelo.
- Construa um novo modelo usando a entrada da primeira camada do modelo e
first_layer_outputcomo saídas. - Use esse
first_layer_modelpara prever emX_test. - Plote as ativações do primeiro dígito de
X_testpara os filtros de neurônios 15º e 18º.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()