我开始使用Keras构建CNN模型。
我使用以下架构构建了一个具有相当准确结果的CNN。
Range
我想要做的是通过模型运行我的图像,但只有卷积步骤。我对Flattening过程的输出感兴趣(即从卷积步骤中获取特征)。
有人可以帮助我如何在Keras中获得它吗?
提前致谢
答案 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, :, :, :]])