Zacznij terazZacznij za darmo

Analiza konwolucji

Inspekcja aktywacji warstwy konwolucyjnej to naprawdę ciekawa rzecz – warto zrobić to przynajmniej raz!

W tym celu zbudujesz nowy model z użyciem obiektu Model z biblioteki Keras, który przyjmuje listę wejść i listę wyjść. Jako wyjście tego nowego modelu podasz wyniki pierwszej warstwy konwolucyjnej, gdy na wejściu podana jest cyfra z zbioru MNIST.

Model konwolucyjny model, który zbudowałeś w poprzednim ćwiczeniu, został już wytrenowany. Potrafi teraz poprawnie klasyfikować odręcznie napisane cyfry z MNIST. Możesz to sprawdzić, wywołując model.summary() w konsoli.

Przyjrzyjmy się maskom konwolucyjnym, których model nauczył się w pierwszej warstwie konwolucyjnej!

To ćwiczenie jest częścią kursu

Wprowadzenie do uczenia głębokiego z Keras

Zobacz kurs

Instrukcje do ćwiczenia

  • Uzyskaj referencję do wyjść pierwszej warstwy konwolucyjnej w modelu.
  • Zbuduj nowy model, używając wejścia pierwszej warstwy modelu oraz first_layer_output jako wyjść.
  • Użyj modelu first_layer_model, aby wykonać predykcję na X_test.
  • Zwizualizuj aktywacje dla pierwszej cyfry z X_test dla 15. i 18. filtru neuronowego.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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()
Edytuj i uruchom kod