如何在 Keras 中获取中间模型的输出

数据挖掘 机器学习 神经网络 深度学习 喀拉斯
2022-03-11 20:07:40

我正在使用功能 API 创建一个神经架构,如下所示:

x2 = layer1(x1, name='layer1')
x3 = layer2(x2, name='layer2')
m1 = Model(x1, x3)
x5 = layer3(x4, name='layer3')
x6 = TimeDistributed(m1)(x5)
m2 = Model(x5, x4)

我已经训练了 m2(m1 得到了隐式训练)。我可以通过创建一个中间模型来访问 m2 层(比如 layer3)的输出:

layer_name = 'layer3'
intermediate_layer_model = Model(input=model.input, output=model.get_layer(layer_name).output)
intermediate_output = intermediate_layer_model.predict(input)

由于 m1 是嵌套模型,我无法访问 m1 到 m2 的层。当您使用经过训练的 m2 对新数据点进行预测时,如何获得输出 x3(layer2 的输出)。

1个回答

关键是首先.get_layer在模型对象上做,然后.get_layer在指定特定层上做另一个,然后做.output

layer_output = model.get_layer('Your-Model-Object').get_layer('the-layer-contained-in-your-Model-object').output