我在用着sigmoid
and binary_crossentropy
用于多标签分类。
例如,标签为y_true
就好像[1,0,1,0,0]
,以及标签y_pred
就好像[0.8,0.3,0.9,0,0]
.
如何设置 Keras 自定义度量函数,以便每个元素y_pred
大于0.5的被映射为1,中的每个元素y_pred
低于0.5的映射为0,然后比较中的标签数量y_pred
匹配的y_true
?
由于您正在进行多标签分类,因此您似乎想要将整个真实标签和预测标签进行比较。例如,对于一个真实标签为[1, 0, 0]
和预测标签[0, 0, 0]
您认为预测精度为零(尽管第二类和第三类的标签已被正确预测)。如果是这种情况,您可以比较标签,然后使用all()
后端的方法确保所有类的标签彼此匹配:
from keras import backend as K
def full_multi_label_metric(y_true, y_pred):
comp = K.equal(y_true, K.round(y_pred))
return K.cast(K.all(comp, axis=-1), K.floatx())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)