def get_features(image, model):
'''
get the feature map of all activation layer for given
image and given model
:param image: input image path
:param model: given model
:return: all activation layers features
'''
# image = load_image(image_src)
feature_maps = np.zeros((10, 10, 15104))
activation_layers = ['activation_' + str(i) for i in range(4, 50, 3)]
start_index = 0
for i, layer_name in enumerate(activation_layers):
layer = model.get_layer(layer_name)
nchannel = layer.output_shape[-1]
conv_output = layer.output
# Adujusting pooling size with respect to input layers` size
if layer.output_shape[-2] == 74:
conv_output = AveragePooling2D(pool_size=(7, 7))(conv_output)
if layer.output_shape[-2] == 37:
conv_output = AveragePooling2D(pool_size=(4, 4), border_mode='same')(conv_output)
if layer.output_shape[-2] == 19:
conv_output = AveragePooling2D(pool_size=(2, 2), border_mode='same')(conv_output)
featuremap_function = K.function([model.input, K.learning_phase()], [conv_output])
output = featuremap_function([image, 0])
feature_maps[:, :, start_index:start_index+nchannel] = output[0][0, :, :, :]
start_index = start_index + nchannel
return feature_maps
visualization.py 文件源码
python
阅读 21
收藏 0
点赞 0
评论 0
评论列表
文章目录