我尝试创建一个自定义损失函数,该函数将传递给CNN模型,但出现“没有任何变量禁止渐变”错误。我知道,这可能是由损失函数内部使用的不可微分运算引起的,但我无法找出问题的根本原因。我已经删除了一些“禁止的-不可区分的”操作,例如K.eval等。 任何人都可以帮助修改以下自定义损失函数,以不引起没有提供梯度的错误吗?
def meanFalseError(self, y_true, y_pred):
neg_y_pred = 1 - y_pred
neg_y_true = 1 - y_true
fp = K.sum(neg_y_true * y_pred)
fn = K.sum(y_true * neg_y_pred)
fps = K.square(K.sum(K.variable(fp)))
fns = K.square(K.sum(K.variable(fn)))
return fps + fns
该函数随后传递给模型的loss参数,并进行编译,然后使用fit函数进行训练。