Keras 自定义损失函数输出负值,不明白为什么?

Keras custom loss function outputs negative values, dont understand why?

亲爱的 Whosebug 社区, 我在keras中有以下损失函数:

return K.mean((y_true+K.epsilon()) * K.square(y_pred - y_true), axis=-1)

当我尝试用它训练我的网络(y 标准化为 0 - 1)时, 损失似乎达到负值,我无法理解。 我用 numpy 计算了同样的东西,一切都按预期正常工作。

如果有人知道这种奇怪的否定解决方案的原因,我会非常高兴,所以感谢您的帮助。

如果 y_true 确实归一化为 0-1,那么我看到的唯一可能原因是 K.epsilon()。正如 this page 建议用户可以更改 epsilon,这可能会导致问题。

尝试对 epsilon 值进行硬编码或将其丢弃。