【问题标题】:How to get featuremap of convolutional layer in keras如何在keras中获取卷积层的特征图
【发布时间】:2018-09-13 18:44:24
【问题描述】:

我有一个使用 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 的输出(值而不是形状)。我在网上看到了代码,但我无法理解如何将它们映射到我的情况。

【问题讨论】:

    标签: python machine-learning keras conv-neural-network feature-extraction


    【解决方案1】:

    如果您正在寻找一种方法来查找给定一个或多个输入样本的层的激活(即特征图或输出),您可以简单地定义一个backend function,它接受输入数组并给出激活作为其输出。这是一个说明示例(即您可能需要根据您的需求和模型架构对其进行调整):

    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])
    

    【讨论】: