gpt4 book ai didi

python - 在多输出 keras 模型中计算损失时,y_pred 和 y_true 是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 04:50:51 25 4
gpt4 key购买 nike

我目前有一个多输出模型

model=Model(inputs=x1, outputs=[y1,y2])
model.compile((optimizer='sgd', loss=[cutom_loss,'mse'])

mse 损失函数的 y_predy_true 值是多少? msey_true 是什么;它是单独输出 y2 还是同时输出 y1 和 y2?

在我的 custom_loss 中,我需要分别从两个输出中传递 y_true 和 y_pred 进行计算

 def custom_loss(y1_true, y1_pred,y2_true, y2_pred):

我该怎么做?

最佳答案

不幸的是,您无法定义“全局”损失函数。 A loss function is always computed only on one output (请参阅已接受答案中的伪代码)。

在您的示例中,自定义损失将在 y1_true 和 y1_pred 上计算,而 mse 将在 y2_true 和 y2_pred 上计算。

如果你想要一个包含 y1 和 y2 输出的自定义损失,我可以想到两种方法:

  1. 将多个输出合并为一个输出:如果 y1 和 y2 是相似的向量,您可以将它们连接起来以便只有一个输出。然后在您的自定义损失中应用一些索引/切片以分离两个输出。
  2. 将损失作为模型的输出:创建自定义网络图(使用 keras 函数式 API 和后端)计算损失,通过将 y1_true 和 y2_true 作为网络的输入;通过做也就是说,您的最终模型将有 3 个输出; y1_pred、y2_pred 和损失。培训结束后,您可以丢弃模型的一部分不再感兴趣(y_true 输入和损失输出)。

我记得我过去遇到过类似的问题,我选择了实现方案 2,但这有点痛苦。

关于python - 在多输出 keras 模型中计算损失时,y_pred 和 y_true 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48364108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com