我正在使用 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
来计算我的预测和标签之间的损失。现在如何计算精度?
任何帮助都非常感谢!!
以下是论文的摘录:
"我们把大多数人的情感作为单一的 情绪标签,我们衡量预测的准确性 大多数人的情绪。
他们使用的是离散分类任务。因此,您只需要在对数上取tf.argmax()
即可获得最高概率,然后将其与标签的tf.argmax()
进行比较。
例如,如果你的标签是(0.5, 0, 0, 0.25, 0.125, 0, 0, 0.375)
,那么快乐是多数情绪,所以你要检查你的logits是否也快乐是多数情绪。