多标签分类map计算

1. 范围

图像的多标签分类中,需要用二元交叉熵损失函数,同时评价标准中用map(mean average precision),计算map则要计算ap,AP衡量的是学出来的模型在每个类别上的好坏,mAP衡量的是学出的模型在所有类别上的好坏,得到AP后mAP的计算就变得很简单了,就是取所有AP的平均值。


2. AP的计算

可以参考

  1. 多标签图像分类任务的评价方法——mAP
  2. 关于mAP计算的一些思考

可以首先看一下以上的两个链接,了解一些概念。其实关键就在第二篇的这句:
precision = cumsum(gt) / index。如下表:
在这里插入图片描述
这就是求的在一个类别id上的AP,然后求出每个类别id上的AP,最后求一个平均就是map了。

3. 实例

这是github项目SIXray中的源码。求AP的

# sort examples
sorted, indices = torch.sort(output, dim=0, descending=True)

# Computes prec@i
pos_count = 0.000000001
total_count = 0.
precision_at_i = 0.
for i in indices:
    label = target[i]
    if difficult_examples and label == 0:
        continue
    if label == 1:
        pos_count += 1
    total_count += 1
    if label == 1:
        precision_at_i += pos_count / total_count
precision_at_i /= pos_count

主要就是一个sort,然后是求precision = cumsum(gt) / index,最后precision /= pos_count,就是AP了。其他类别的AP,以此类推,最后求平均就是map。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值