LoslegenKostenlos starten

Faltungen betrachten

Die Aktivierungen einer Convolutional-Schicht zu inspizieren, ist ziemlich cool. Das solltest du mindestens einmal in deinem Leben gemacht haben!

Dafür baust du ein neues Modell mit dem Keras-Objekt Model, das eine Liste von Eingaben und eine Liste von Ausgaben erhält. Die Ausgaben, die du diesem neuen Modell gibst, sind die Ausgaben der ersten Convolutional-Schicht, wenn eine MNIST-Ziffer als Eingabebild verwendet wird.

Das Convolutional-model, das du in der vorherigen Übung gebaut hast, wurde bereits für dich trainiert. Es kann MNIST-Handschriften korrekt klassifizieren. Du kannst das in der Konsole mit model.summary() prüfen.

Schauen wir uns die Faltungs-Masken an, die in der ersten Convolutional-Schicht dieses Modells gelernt wurden!

Diese Übung ist Teil des Kurses

<Kurs>Einstieg ins Deep Learning mit Keras</Kurs>
Kurs ansehen

Übungsanweisungen

  • Hole dir eine Referenz auf die Ausgaben der ersten Convolutional-Schicht im Modell.
  • Baue ein neues Modell, das die Eingabe der ersten Schicht des Modells als Input und first_layer_output als Ausgaben verwendet.
  • Verwende dieses first_layer_model, um Vorhersagen auf X_test zu machen.
  • Plotte die Aktivierungen der ersten Ziffer aus X_test für den 15. und den 18. Neuronenfilter.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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 bearbeiten und ausführen