Keras CNN从Convolutional步骤获得输出

时间:2018-02-01 09:10:27

标签: python keras convolution

我开始使用Keras构建CNN模型。

我使用以下架构构建了一个具有相当准确结果的CNN。

Range

我想要做的是通过模型运行我的图像,但只有卷积步骤。我对Flattening过程的输出感兴趣(即从卷积步骤中获取特征)。

有人可以帮助我如何在Keras中获得它吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

这是一个解决方案。如果您对图层'max_pooling2d_4'的输出感兴趣(您可以按classifier.summary()获取图层名称,但我建议您为每个图层添加名称,例如classifier.add(MaxPool2D(pool_size=(2,2), name='pool1'))):

layer_dict = dict([(layer.name, layer) for layer in classifier.layers])

# input tensor
input_tensor = classifier.input

# output tensor of the given layer
layer_output = layer_dict['max_pooling2d_4'].output

# get the output with respect to the input
func = K.function([input_tensor], [layer_output])

# test image: [64, 64, 3]
image = np.ones((64,64,3))

# get activation for the test image
activation = func([image[np.newaxis, :, :, :]])