在tensorflow中处理multi-class multilabel classification时如何计算准确率?
How to calculate the accuracy when dealing with multi-class mutlilabel classification in tensorflow?
我正在使用来自 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
来计算我的预测和标签之间的损失。现在如何计算准确率?
非常感谢任何帮助!!
这是论文的摘录:
"我们以多数情绪为单一
情绪标签,我们衡量预测准确性
大多数情绪。
他们正在使用离散分类任务。所以你只需要在你的 logits 上取 tf.argmax()
以获得最高概率,然后将其与标签的 tf.argmax()
进行比较。
例如,如果您的标签是 (0.5, 0, 0, 0.25, 0.125, 0, 0, 0.375)
,那么快乐是大多数情绪,那么您将检查您的 logits 是否也将快乐作为大多数情绪。
我正在使用来自 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
来计算我的预测和标签之间的损失。现在如何计算准确率?
非常感谢任何帮助!!
这是论文的摘录:
"我们以多数情绪为单一 情绪标签,我们衡量预测准确性 大多数情绪。
他们正在使用离散分类任务。所以你只需要在你的 logits 上取 tf.argmax()
以获得最高概率,然后将其与标签的 tf.argmax()
进行比较。
例如,如果您的标签是 (0.5, 0, 0, 0.25, 0.125, 0, 0, 0.375)
,那么快乐是大多数情绪,那么您将检查您的 logits 是否也将快乐作为大多数情绪。