Я пытаюсь построить две вещи:
1) Вывод после применения каждого фильтра (Всего 32 вывода в случае "Conv2D (32, (3,3) ..)..)
2) Фильтр, который изучается / генерируется во время обучения (всего 32 фильтра, как указано выше)
Ниже приведен мой код и демонстрационное изображение: Образец изображения
Сначала я только что прочитал изображение:
import cv2
import matplotlib.pyplot as plt
%matplotlib inline`
plt.imshow(face)
cv2.waitKey(0)
Результат вышеприведенного кода
Затем я создал простой 1-слойный CNN с Keras:
from keras.models import Sequential
from keras.layers import Conv2D
import numpy as np
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape = face.shape, padding='valid', activation = 'relu'))
face_batch = np.expand_dims(face, axis=0)
conv_face = model.predict(face_batch)
def visualize_face(face_batch):
face = np.squeeze(face_batch, axis=0)
print (face.shape)
plt.imshow(face[:,:,31])
Последняя строка выше варьируется от 0 до 31 (всего 32 фильтра) для любого фильтра, который я хочу визуализировать. Тогда конечная ячейка будет иметь вид:
print(np.squeeze(conv_face, axis=0).shape)
visualize_face(conv_face)
Выходные данныекода выше
Так что это правильный способ визуализации результатов фильтра, примененного к изображению?
Теперь перейдем ко второму вопросу:
Я пытаюсьпостроить все эти 32 фильтра, которые запоминаются моделью при получении этих выходных данных. Так может ли кто-нибудь помочь мне с моим запросом?
Заранее спасибо:)