【问题标题】:custom keras metric for row accuracy用于行准确性的自定义 keras 指标
【发布时间】:2020-05-27 19:07:55
【问题描述】:

我有一个多标签分类问题: 以下是 y 的一些示例:

[0,0,0]
[0,0,1]
[1,0,1]
[1,1,0]
[1,0,0]

等等。 我想创建一个函数,告诉我预测中的行百分比,基于 0.5 阈值,等于 y 中的真实向量。 所以如果 y 是:

[[0,0,1]
[1,0,0]
[1,0,1]]

和预测是:

[[0.2,0.4,0.9]
[0.6,0.3,0.4]
[0.3,0.3,0.4]]

准确率是 2/3,因为两行预测相同的标签,而 1 则不是。

这是我现在拥有的:

def accuracy(y_true, y_pred):

    acc = K.all(K.equal(y_true, y_pred), axis=1)
    acc= K.cast(acc, 'float32')
    acc = K.sum(acc)
    acc = acc/K.cast(K.shape(y_true)[0], 'float32')
    return acc

但它在训练期间向我显示了消息并显示准确度为 0:

Allocation of 223027200 exceeds 10% of system memory.

y_train 和 y_test 的形状是: (1285, 3) (551, 3)

X_train 的形状: (1285, 70, 70, 1)

【问题讨论】:

    标签: python tensorflow keras deep-learning


    【解决方案1】:

    为有需要的人提供解决方案:

     def accuracy(y_true, y_pred):
    
            y_pred = K.round(y_pred)
            acc = K.all(K.equal(y_true, y_pred), axis=1)
            acc= K.cast(acc, 'float32')
            acc = K.sum(acc)
            acc = acc/K.cast(K.shape(y_true)[0], 'float32')
            return acc
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-01
      • 2018-05-14
      • 2018-08-17
      • 2021-06-01
      • 1970-01-01
      • 2022-12-01
      • 2020-03-04
      相关资源
      最近更新 更多