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 值进行硬编码或将其丢弃。
亲爱的 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 值进行硬编码或将其丢弃。