用于多标签分类的 keras 自定义指标

2024-02-09

我在用着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(使用前将#替换为@)

用于多标签分类的 keras 自定义指标 的相关文章

随机推荐