【问题标题】:How to calculate the accuracy when dealing with multi-class mutlilabel classification in tensorflow?tensorflow中处理多类多标签分类时如何计算准确率?
【发布时间】:2019-03-23 12:35:54
【问题描述】:

我正在使用来自https://github.com/Microsoft/FERPlus 的 FER2013Plus 数据集,其中包含 fer2013new.csv 文件。此文件包含数据集中每个图像的标签。标签的示例可能是:

(4, 0, 0, 2, 1, 0, 0, 3)

每个维度都是不同的情感。最后,在他们的论文https://arxiv.org/pdf/1608.01041.pdf 中,他们将标签分布转换为概率 => 新标签将变为

(0.5, 0, 0, 0.25, 0.125, 0, 0, 0.375)

换句话说,图像中的人快乐的概率为 0.5,悲伤的概率为 0.25,依此类推……概率之和为 1。

现在在训练时,我使用tf.nn.softmax_cross_entropy_with_logits_v2 来计算我的预测和标签之间的损失。现在如何计算准确率?

非常感谢任何帮助!

【问题讨论】:

    标签: tensorflow prediction multilabel-classification multiclass-classification


    【解决方案1】:

    这是论文的摘录:

    “我们以多数情感为单一 情绪标签,我们测量预测准确性 大多数情绪。”

    他们正在使用离散分类任务。所以你只需要在你的 logits 上取tf.argmax() 以获得最高概率,然后将其与标签的tf.argmax() 进行比较。

    例如,如果您的标签是(0.5, 0, 0, 0.25, 0.125, 0, 0, 0.375),那么快乐是大多数情绪,因此您会检查您的 logits 是否也将快乐作为大多数情绪。

    【讨论】:

    • 感谢@Jordan 的帮助。但我猜他们在论文中提到,你可以用不同的方式计算损失,而不仅仅是考虑多数票。你有交叉熵、概率标签绘制等等……
    • 抱歉,我只是快速浏览了一下论文,很快就找到了。多数票肯定是更容易实现,但可能不是最好的实现
    • 实际上现在我再次浏览它,似乎对于所有四种损失算法,最后他们都将他们的准确性计算多数票投给了。他们这样做可能是为了保持一致。如果你愿意,你可以提出一个不是多数投票的准确度计算。
    猜你喜欢
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    • 2018-07-20
    • 2018-05-29
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多