记录 | pytorch计算ap的方法

这篇具有很好参考价值的文章主要介绍了记录 | pytorch计算ap的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

假设当前经过标签数据与预测数据的加载,我们得到了下面两个变量:

  • det_boxes:包含全部图像中所有类别的预测框,其中一个边框包含了[left, top, right, bottom, score, NameofImage]
  • gt_boxes:包含了全部图像中所有类别的标签,其中一个标签的内容为[left, top, right, bottom, 0]。需要注意的是,最后一位0代表该标签有没有被匹配过,如果匹配过则会置1,其他预测框再去匹配则为误检框。

下面是所有类别的评测过程。文章来源地址https://www.toymoban.com/news/detail-828084.html

for c in classes:
  # 通过类别作为关键字,得到每个类别的预测、标签及总标签数
  dects = det_boxes[c]
  gt_class = gt_boxes[c]
  npos = num_pos[c]
  
  #利用得分作为关键字,对预测框按照得分从高到低排序
  dects = sorted(dects, key = lambda conf: conf[5], reverse = True)
  
  #设置两个与预测边框长度相同的列表,标记是True Positive还是False Positive
  TP = np.zeros(len(dects))
  FP = np.zeros(len(dects))
  
  #对某一个类别的预测框进行遍历
  for d in range(len(dets)):
    #将iou默认置为最低
    iouMax = sys.float_info.min
    #遍历与预测框同一图像中的同一类别的标签,计算iou
    if dects[d][-1] in gt_class:
      for j in range(len(gt_class[dects[d][-1]])):
        iou = Evaluator.iou(dects[d][:4], gt_class[dects[d][-1]][j][:4])
        if iou > iouMax:
          iouMax = iou
          jmax = j       #记录与预测有最大iou的标签
        #如果最大iou大于阈值,并且没有被匹配过,则赋予TP
        if iouMax >= cfg['iouThreshold']:
          if gt_class[dects[d][-1]][jmax][4] == 0:
            TP[d] = 1
            gt_class[dects[d][-1]][jmax][4] = 1   #标记为匹配过
          #如果被匹配过,赋予FP
          else:
            FP[d] = 1
        #如果最大iou没有超过阈值,赋予FP
        else;
          FP[d] = 1
      #如果对应图像中没有该类别的标签,赋予FP
      else:
        FP[d] = 1
    #利用NumPy的cumsum()函数,计算累计的FP与TP
    acc_FP = np.cumsum(FP)
    acc_TP = np.cumsum(TP)
    rec = acc_TP / npos    #得到每个点的Recall
    prec = np.divide(acc_TP, (acc_FP + acc_TP))    #得到每个点的Precision
    #利用Recall与Precision进一步计算得到AP
    [ap, mpre, mrec, ii] = Evaluator.CalculateAveragePrecision(rec, prec)

到了这里,关于记录 | pytorch计算ap的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 头歌人工智能学习记录

    因为这个实训的顺序不同,所以这里的顺序是个人学习的顺序,可能有些变动 相关知识 为了完成本关任务,你需要掌握: 激活函数概述; 线性函数; Sigmoid 函数。 神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,

    2024年02月05日
    浏览(61)
  • 人工智能(pytorch)搭建模型9-pytorch搭建一个ELMo模型,实现训练过程

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型9-pytorch搭建一个ELMo模型,实现训练过程,本文将介绍如何使用PyTorch搭建ELMo模型,包括ELMo模型的原理、数据样例、模型训练、损失值和准确率的打印以及预测。文章将提供完整的代码实现。 ELMo模型简介 数据

    2024年02月07日
    浏览(65)
  • 人工智能学习07--pytorch15(前接pytorch10)--目标检测:FPN结构详解

    backbone:骨干网络,例如cnn的一系列。(特征提取) (a)特征图像金字塔 检测不同尺寸目标。 首先将图片缩放到不同尺度,针对每个尺度图片都一次通过算法进行预测。 但是这样一来,生成多少个尺度就要预测多少次,训练效率很低。 (b)单一特征图 faster rcnn所采用的一种方式

    2023年04月12日
    浏览(72)
  • 人工智能:Pytorch,TensorFlow,MXNET,PaddlePaddle 啥区别?

    学习人工智能的时候碰到各种深度神经网络框架:pytorch,TensorFlow,MXNET,PaddlePaddle,他们有什么区别? PyTorch、TensorFlow、MXNet和PaddlePaddle都是深度学习领域的开源框架,它们各自具有不同的特点和优势。以下是它们之间的主要区别: PyTorch是一个开源的Python机器学习库,它基

    2024年04月16日
    浏览(66)
  • 人工智能(Pytorch)搭建模型6-使用Pytorch搭建卷积神经网络ResNet模型

    大家好,我是微学AI,今天给大家介绍一下人工智能(Pytorch)搭建模型6-使用Pytorch搭建卷积神经网络ResNet模型,在本文中,我们将学习如何使用PyTorch搭建卷积神经网络ResNet模型,并在生成的假数据上进行训练和测试。本文将涵盖这些内容:ResNet模型简介、ResNet模型结构、生成假

    2024年02月06日
    浏览(75)
  • 人工智能学习07--pytorch14--ResNet网络/BN/迁移学习详解+pytorch搭建

    亮点:网络结构特别深 (突变点是因为学习率除0.1?) 梯度消失 :假设每一层的误差梯度是一个小于1的数,则在反向传播过程中,每向前传播一层,都要乘以一个小于1的误差梯度。当网络越来越深的时候,相乘的这些小于1的系数越多,就越趋近于0,这样梯度就会越来越小

    2023年04月11日
    浏览(148)
  • AI写作革命:PyTorch如何助力人工智能走向深度创新

    身为专注于人工智能研究的学者,我十分热衷于分析\\\"AI写稿\\\"与\\\"PyTorch\\\"这两项领先技术。面对日益精进的人工智能科技,\\\"AI写作\\\"已不再是天方夜谭;而\\\"PyTorch\\\"如璀璨明珠般耀眼,作为深度学习领域的尖端工具,正有力地推进着人工智能化进程。于此篇文章中,我将详细解析\\\"

    2024年04月13日
    浏览(51)
  • 人工智能(Pytorch)搭建模型2-LSTM网络实现简单案例

     本文参加新星计划人工智能(Pytorch)赛道:https://bbs.csdn.net/topics/613989052  大家好,我是微学AI,今天给大家介绍一下人工智能(Pytorch)搭建模型2-LSTM网络实现简单案例。主要分类三个方面进行描述:Pytorch搭建神经网络的简单步骤、LSTM网络介绍、Pytorch搭建LSTM网络的代码实战 目录

    2024年02月03日
    浏览(63)
  • 【记录】终端如何 进入conda环境,如何退出 conda(base)环境,终端快速进入Jupyter notebook的方法 | 人工智能面试题:什么是聊天机器人(Chatbot)?列举一些常用的

      “一个人走向末路往往是因为不遗余力地寻找捷径。”     🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿   🌟[3] 2022年度博客之星人工智能领域TOP4🌟   🏅[4] 阿里云社区特邀专家博

    2024年02月07日
    浏览(56)
  • 人工智能(pytorch)搭建模型10-pytorch搭建脉冲神经网络(SNN)实现及应用

    大家好,我是微学AI,今天给大家介绍一下人工智能(pytorch)搭建模型10-pytorch搭建脉冲神经网络(SNN)实现及应用,脉冲神经网络(SNN)是一种基于生物神经系统的神经网络模型,它通过模拟神经元之间的电信号传递来实现信息处理。与传统的人工神经网络(ANN)不同,SNN 中的

    2024年02月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包