我正在尝试实现此损失函数:本文档中的MCFD_loss_function (P6):损失函数
所以我创建了一个这样的新函数:
def mcfd_loss(y_true, y_pred):
return K.sum( # ∑
K.cast(
K.greater( # only values greater than 0 (+ float32 cast)
K.dot(K.sign(y_pred), # π
K.sign(y_true))
, 0)
, 'float32')
)
但是当我开始训练时,会出现这个错误:
ValueError:一个操作有
None
梯度。请确保您的所有操作都定义了渐变(即可微分)。没有梯度的常见操作:K.argmax、K.round、K.eval。
我不知道我错过了哪一点。似乎引发了错误,因为我使用了更大的功能。我不知道这个错误是什么意思以及如何纠正我的问题。
谢谢。