【问题标题】:keras custom metrics for multi-label classfication用于多标签分类的 keras 自定义指标
【发布时间】:2019-04-01 21:50:08
【问题描述】:

我使用sigmoid 和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_true匹配的987654329@?

【问题讨论】:

    标签: tensorflow machine-learning keras deep-learning multilabel-classification


    【解决方案1】:

    由于您正在进行多标签分类,因此您似乎希望将整个真实标签和预测标签相互比较。例如,对于一个真实标签为[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())
    

    【讨论】:

    猜你喜欢
    • 2021-08-13
    • 2019-05-21
    • 2022-12-01
    • 2019-01-06
    • 1970-01-01
    • 2018-05-26
    • 2018-08-04
    • 2019-02-26
    • 2018-05-14
    相关资源
    最近更新 更多