Aan de slagGa gratis aan de slag

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

Cursus bekijken

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_output als outputs.
  • Gebruik dit first_layer_model om voorspellingen te doen op X_test.
  • Plot de activaties van het eerste cijfer van X_test voor 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()
Code bewerken en uitvoeren