Tensorflow Keras:多个输出,仅损失一个功能?

Tensorflow Keras:多个输出,仅损失一个功能?,tensorflow,keras,Tensorflow,Keras,我有这样的设置: model = keras.Model(input,[output1,output2]) 我的损失函数只是output1的函数。我如何告诉Keras为了计算损失而忽略输出2?我想到的最好方法是生成一个始终返回0.0的伪损失函数: model.compile(optimizer=..., loss=[realLossFunction, zeroLossFunction]) 我可以接受这一点,但我必须到处看看这个损失函数的统计数据和进度,并想知道是否有更优雅的方法。您可以避免将

我有这样的设置:

model = keras.Model(input,[output1,output2])
我的损失函数只是output1的函数。我如何告诉Keras为了计算损失而忽略输出2?我想到的最好方法是生成一个始终返回0.0的伪损失函数:

model.compile(optimizer=..., loss=[realLossFunction, zeroLossFunction])

我可以接受这一点,但我必须到处看看这个损失函数的统计数据和进度,并想知道是否有更优雅的方法。

您可以避免将此输出放入模型中,然后重用权重(或与函数API共享权重)将附加输出添加到完整模型


但是使用零损失也可以。

为什么不为只有一个输出的训练创建一个单独的模型,即
output1
?示例:
trainingModel=keras.model(model.input,model.outputs[0])
第二个输出实际上是在下一次迭代中反馈给输入的(RNN样式)状态。对于此应用程序,我正在手动运行RNN反馈。因此,虽然它不是直接得分,但在训练中是必需的。