Keras海关损失“;无”;梯度

Keras海关损失“;无”;梯度,keras,Keras,我目前尝试为keras二元分类模型创建一个自定义损失函数。TP、TN、FP、FN各有不同的利润减少 FN减少利润72%$ TP使利润减少了28.2%$ TN将利润减少0$ FP将利润减少5.7%$ 电流损耗函数如下所示,但给出了如下所述的错误 def custom_loss(y_true, y_pred): TP = K.all(K.stack([y_true, y_pred], axis=0), axis=0) # FP = K.all(K.stack([K.square(te

我目前尝试为keras二元分类模型创建一个自定义损失函数。TP、TN、FP、FN各有不同的利润减少

FN减少利润72%$ TP使利润减少了28.2%$ TN将利润减少0$ FP将利润减少5.7%$

电流损耗函数如下所示,但给出了如下所述的错误

def custom_loss(y_true, y_pred):
    TP = K.all(K.stack([y_true, y_pred], axis=0), axis=0)
    # FP = K.all(K.stack([K.square(tensorflow.subtract(y_true, 1)), y_pred]))
    # FN = K.all(K.stack([y_true, K.square(y_pred-K.constant(1))]))

    return K.sum(K.switch(TP, K.ones_like(y_true), K.zeros_like(y_true))*K.constant(28.2))



ValueError: An operation has `None` for gradient. Please make sure that all of your ops have a gradient defined (i.e. are differentiable). Common ops without gradient: K.argmax, K.round, K.eval.
我基本上了解错误的原因,但我不知道如何对损失函数进行建模,以便使用的所有操作都具有梯度!=没有

我找到了关于如何对自定义损失函数建模的各种资源,但没有设法使它们适应我的“固定成本”函数