Kijken naar convoluties
De activaties van een convolutionele laag inspecteren is superleuk. Je moet het minstens één keer in je leven doen!
Daarvoor bouw je een nieuw model met het Keras-object Model, dat een lijst met inputs en een lijst met outputs verwacht. De outputs die je aan dit nieuwe model geeft, zijn de outputs van de eerste convolutionele laag wanneer je een MNIST-cijfer als invoerafbeelding gebruikt.
Het convolutionele model dat je in de vorige oefening hebt gebouwd, is al voor je getraind. Het kan nu MNIST-handgeschreven afbeeldingen correct classificeren. Je kunt dit checken met model.summary() in de console.
Laten we kijken naar de convolutionele maskers die zijn geleerd in de eerste convolutionele laag van dit model!
Deze oefening maakt deel uit van de cursus
Introductie tot Deep Learning met Keras
Oefeninstructies
- Haal een verwijzing op naar de outputs van de eerste convolutionele laag in het model.
- Bouw een nieuw model met de input van de eerste laag van het model en gebruik
first_layer_outputals outputs. - Gebruik dit
first_layer_modelom voorspellingen te doen opX_test. - Plot de activaties van het eerste cijfer van
X_testvoor de 15e en de 18e neuronenfilter.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()