有没有办法在Keras的预测中输出网络值

时间:2018-01-25 17:09:21

标签: tensorflow machine-learning deep-learning keras

我正在使用Keras进行深入学习。 我对预测步骤中的网络状态有疑问。

在预测一些随机输入时,有没有办法发现神经元的值? (参见给定输入的最终神经元状态)。

1 个答案:

答案 0 :(得分:3)

<强>更新

您可以创建一个新的临时模型,其中包含要从中检索激活值的(原始)网络的隐藏层。

例如,如果你有一个有3层(1个输入,1个隐藏和1个输出)的神经网络A并想要检索隐藏层的激活值,你需要创建一个新模型,比如B,有2层(1输入和1输出)。模型B的输入层将与模型A的输入层相同。而模型B的输出层将类似于模型A的隐藏层。

示例代码可以是:

rom keras.models import Model

model = ...  # create the original model

layer_name = 'my_layer'
intermediate_layer_model = Model(inputs=model.input,
                             outputs=model.get_layer(layer_name).output)
intermediate_output = intermediate_layer_model.predict(data)

有关详细信息,请查看Keras常见问题https://keras.io/getting-started/faq/#how-can-i-obtain-the-output-of-an-intermediate-layer