Как получить карту объектов сверточного слоя в керасе - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть модель, которую я загрузил с помощью Keras. Мне нужно, чтобы я мог найти отдельные карты объектов (напечатать значения каждой карты объектов). Я был в состоянии распечатать веса. Вот мой код:

for layer in model.layers:
    g=layer.get_config()
    h=layer.get_weights()

    print g

    print h

Модель состоит из одного конвектора, у которого всего 384 нейрона. Первые 128 имеют размер фильтра 3, следующие 4 и последние 128 имеют размер фильтра 5. Затем имеются слои relu и maxpool, а затем он подается в слой softmax. Я хочу быть в состоянии найти выходы (значения, а не формы) convlayer, relu и maxpool. Я видел коды в Интернете, но не могу понять, как сопоставить их с моей ситуацией.

1 Ответ

0 голосов
/ 13 сентября 2018

Если вы ищете способ найти активацию (т. Е. Карту объектов или выход) слоя по одному или нескольким входным выборкам, вы можете просто определить бэкэнд-функцию , которая принимает входной массив ( s) и выдает активацию (ы) в качестве своего вывода. Вот пример для иллюстрации (т. Е. Вам может потребоваться адаптировать его к вашим потребностям и архитектуре вашей модели):

from keras import backend as K

# define a function to get the activation of all layers
outputs = [layer.output for layer in model.layers]
active_func = K.function([model.input], [outputs])

# you can use it like this
activations = active_func([my_input_array])
...