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
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_outputjako wyjść. - Użyj modelu
first_layer_model, aby wykonać predykcję naX_test. - Zwizualizuj aktywacje dla pierwszej cyfry z
X_testdla 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()