我在精确度和召回率报告中遇到问题,因为对于阳性类别,其价值非常小,约为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。