【发布时间】:2018-10-06 01:45:47
【问题描述】:
众所周知,keras 中的 sparse_categorical_crossentropy 可以得到每个类别之间的平均损失函数。但是,如果我最关心的只是一个特定的类别呢?就像如果我想将基于这个类别的精度(=TP/(TP+FP))定义为损失函数,我该怎么写呢?谢谢!
我的代码是这样的:
from keras import backend as K
def my_loss(y_true,y_pred):
y_true = K.cast(y_true,"float32")
y_pred = K.cast(K.argmax(y_pred),"float32")
nominator = K.sum(K.cast(K.equal(y_true,y_pred) & K.equal(y_true, 0),"float32"))
denominator = K.sum(K.cast(K.equal(y_pred,0),"float32"))
return -(nominator + K.epsilon()) / (denominator + K.epsilon())
错误是这样的:
argmax is not differentiable
【问题讨论】:
标签: keras loss-function