一个操作的梯度为“无”。没有渐变的常见操作:K.argmax,K.round,K.eval

时间:2019-08-22 03:54:39

标签: python keras deep-learning loss-function imbalanced-data

我在精确度和召回率报告中遇到问题,因为对于阳性类别,其价值非常小,约为15%。因此,要更正它,我为丢失功能编写了一些自定义代码,这既不正确,又引发错误。

def不平衡损失(y_true,y_pred):

stacked =tensorflow.stack([y_true, y_pred])
def claculate_loss(y):
    correct=y[0]
    predict=y[0]
    if correct== 1 and predict== 0 :
        return 5
    elif correct== 0 and predict== 1:
        return 0.5
    else:
        return 0


loss_array = tensorflow.keras.backend.map_fn(claculate_loss, stacked)
return(tensorflow.keras.backend.sum(loss_array))

这将在Keras深度学习模型中传递,同时为“损失”编译模型

错误:操作具有None用于渐变。请确保您所有的操作都定义了渐变(即可区分)。没有渐变的常见操作:K.argmax,K.round,K.eval。

0 个答案:

没有答案