Визуализация глубинных фильтров в Керасе CNN - PullRequest
1 голос
/ 09 апреля 2019

Мой вопрос прост. Я хочу визуализировать, какие фильтры используются в ConvNet в глубоких слоях для извлечения функций, предсказывающих окончательную модель. Под визуализацией я имею в виду сохранить его в формате .png, например, фильтры, показанные в последнем слое https://s3 -ap-south-1.amazonaws.com / av-blog-media / wp-content / uploads / 2018/03 /cnn_filters.png, мы можем увидеть автомобиль в фильтрах конечных слоев

Я могу визуализировать фильтры первого сверточного слоя с помощью справки из моего собственного вопроса Визуализация окончательных обученных фильтров Keras CNN на каждом слое , но это показано только для визуализации для первого слоя. Фильтры первого слоя выглядят как случайные цветные изображения размером 3х3 пикселя. Но я хочу увидеть фильтры окончательного слоя, такие как автомобильный фильтр, в первой ссылке.

Фильтры первого слоя выглядят как изображения произвольных цветов 3х3 пикселя. Но я хочу увидеть фильтры окончательного слоя, такие как автомобильный фильтр, в первой ссылке. Даже артикул автомобильного фильтра https://www.analyticsvidhya.com/blog/2018/03/essentials-of-deep-learning-visualizing-convolutional-neural-networks/ имеет код только для первого слоя

Ответы [ 2 ]

1 голос
/ 09 апреля 2019

Библиотека Python keras-vis - отличный инструмент для визуализации CNN.Он может генерировать визуализации фильтра фильтра, визуализации плотных слоев и карты внимания.Последний выпуск довольно старый (и немного глючный), поэтому я рекомендую установить с master:

pip install git+https://github.com/raghakot/keras-vis.git
1 голос
/ 09 апреля 2019

Вы можете указать вес различных слоев:

w = model.layers[i].get_weights()[0][:,:,:,:]

где i - номер вашего слоя.

В случае с изображением в ссылке, я не уверен, действительно ли это веса или карта активации, которая показана. Вы можете получить это по:

from keras import backend as K

get_output = K.function([model.layers[0].input],[cnn.layers[i].output])
output_normal = get_output([X])[0][m]

где m - номер определенного изображения в X в качестве ввода.

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