我可以在keras中对模型的一部分运行指标吗?

时间:2019-11-18 20:11:07

标签: python tensorflow keras

我有一个带有自定义损失函数的顺序模型用于训练。为了进行预测和验证,我想删除一层。有什么办法吗?我想到的最简单的事情是,通过获得上一层的输出值而无需访问输入,就可以在自定义指标内。另外,我可以在单独的模型上进行预测和验证,但是我担心构造单独的模型,因为我希望节省权重。有什么建议么?我花了很多时间进行此操作,我尝试做的任何事情都涉及范围问题。我看了一下:Keras, How to get the output of each layer?,但我看到的每个答案都要求我知道输入内容。

1 个答案:

答案 0 :(得分:1)

您可以创建单独的模型。每个模型都需要编译。我的解决方案是这种形式...

inputs = Input(input_shape)
model = Conv2D(32, [3,3])(inputs)
# pass the model through some layers
# finish the model
model = Model(inputs=inputs, outputs=model)

input_2 = Input(input_shape)
second_model = model(input_2)
# pass the second model through some layers
second_model = Model(inputs=inputs, outputs=second_model)

model.compile(...
second_model.compile(...

现在对second_model进行的任何训练都会影响模型的权重,从而使您可以根据second_model和模型进行预测。