Визуализация уровня CNN - PullRequest
       8

Визуализация уровня CNN

0 голосов
/ 05 октября 2018

Я пытаюсь построить две вещи:

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 фильтра, которые запоминаются моделью при получении этих выходных данных. Так может ли кто-нибудь помочь мне с моим запросом?

Заранее спасибо:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...