Evrişimlere yakından bakmak
Bir evrişim katmanının aktivasyonlarını incelemek epey havalı bir iş. Hayatta en az bir kez yapmalısın!
Bunu yapmak için, Keras Model nesnesiyle yeni bir model kuracaksın. Bu nesne bir girişler listesi ve bir çıkışlar listesi alır. Bu yeni modele sağlayacağın çıkışlar, bir MNIST rakamı giriş görüntüsü verildiğinde ilk evrişim katmanının çıktıları olacak.
Önceki egzersizde kurduğun evrişimsel model senin için zaten eğitildi. Artık MNIST el yazısı görüntülerini doğru şekilde sınıflandırabiliyor. Konsolda model.summary() ile kontrol edebilirsin.
Hadi, bu modelin ilk evrişim katmanında öğrenilen evrişim maskelerine göz atalım!
Bu egzersiz
Keras ile Deep Learning'e Giriş
kursunun bir parçasıdırEgzersiz talimatları
- Modeldeki ilk evrişim katmanının çıktısına bir referans al.
- Modelin ilk katman girdisini ve çıktı olarak
first_layer_output'u kullanarak yeni bir model oluştur. - Bu
first_layer_modelileX_testüzerinde tahmin yap. X_test'in ilk rakamının aktivasyonlarını 15. ve 18. nöron filtresi için görselleştir.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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()