之前一直不清楚Top1和Top5是什么,其实搞清楚了很简单,就是两种衡量指标,其中,Top1就是普通的Accuracy,Top5比Top1衡量标准更“严格”,

具体来讲,比如一共需要分10类,每次分类器的输出结果都是10个相加为1的概率值,Top1就是这十个值中最大的那个概率值对应的分类恰好正确的频率,而Top5则是在十个概率值中从大到小排序出前五个,然后看看这前五个分类中是否存在那个正确分类,再计算频率。Pytorch实现如下:

def evaluteTop1(model, loader):model.eval()correct = 0total = len(loader.dataset)for x,y in loader:x,y = x.to(device), y.to(device)with torch.no_grad():logits = model(x)pred = logits.argmax(dim=1)correct += torch.eq(pred, y).sum().float().item()#correct += torch.eq(pred, y).sum().item()return correct / totaldef evaluteTop5(model, loader):model.eval()correct = 0total = len(loader.dataset)for x, y in loader:x,y = x.to(device),y.to(device)with torch.no_grad():logits = model(x)maxk = max((1,5))        y_resize = y.view(-1,1)_, pred = logits.topk(maxk, 1, True, True)correct += torch.eq(pred, y_resize).sum().float().item()return correct / total

注意:y_resize = y.view(-1,1)是非常关键的一步,在correct的运算中,关键就是要pred和y_resize维度匹配,而原来的y是[128],128是batch大小;

pred的维度则是[128,10],假设这里是CIFAR10十分类;因此必须把y转化成[128,1]这种维度,但是不能直接是y.view(128,1),因为遍历整个数据集的时候,

最后一个batch大小并不是128,所以view()里面第一个size就设为-1未知,而确保第二个size是1就行

topk函数的具体用法参见https://blog.csdn.net/u014264373/article/details/86525621

转载于:https://www.cnblogs.com/yqpy/p/11391972.html

Pytorch实现Top1准确率和Top5准确率相关推荐

  1. Top-1准确率和Top-5准确率

    在深度学习过程中,会经常看见各成熟网络模型在ImageNet上的Top-1准确率和Top-5准确率的介绍,如下图所示: 那Top-1 Accuracy和Top-5 Accuracy是指什么呢?区别在哪 ...

  2. Top-1 Accuracy和Top-5 Accuracy

    Top-1 Accuracy和Top-5 Accuracy是指什么 我们知道ImageNet有大概1000个分类,而模型预测某张图片时,会给出1000个从高到低排名的概率,表示网络预测该图片属于各类的 ...

  3. pytorch实现图像分类,训练集准确率很高,测试集准确率总是很低

    在使用pytorch运行图像分类的代码的时候,发现测试集准确率总是只有30%左右, 但是训练集准确率基本可以达到80%以上,那么存在的问题可能是一下几个方面导致的: 1.学习率设置得太高,可以尽量将学 ...

  4. Top-1错误率、Top-5错误率等常见的模型算法评估指标解析

    Top-1 错误率:指预测输出的概率最高的类别与人工标注的类别相符的准确率,就是你预测的label取最后概率向量里面最大的那一个作为预测结果,如过你的预测结果中概率最大的那个分类正确,则预测正确,否则 ...

  5. 1的准确率_库存准确率总是100%正常吗?

    前几期讲了不少关于盘点的方法.流程和技巧,本期来谈谈盘点的结果吧. 盘点是一项并不轻松的工作,更是一门重要的管理,不能因为要盘点而去盘点,而是为了提升存货状况的透明度,健全内部控制作业.用指标来衡量的 ...

  6. python垃圾分类准确率计算公式_准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure...

    机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accuracy),精确率(Precision), ...

  7. 如何理解论文中常见的Top-1错误率和Top-5错误率?

    首先是TOP-5正确率, 举个例子,比如你训练好了一个网络,你要用这个网络去进行图片分类任务,那我假设要分类的数目有50类,那么当我进行测试时,我输入一张图片,网络会依次输出这50个类别的概率,当所有 ...

  8. 基于Cemotion的在线评论情感分析及准确率验证(准确率:96%)

    前段时间找到了Cemotion这个NLP第三方库,发现它准确率高的惊人,Cemotion算法的优点在于准确率高.调用方便,缺点是运行较慢(相比其他NPL算法).环境配置(自动安装TensorFlow环 ...

  9. Top-1 accuracy和Top-5 accuracy的概念及理解

    官方解释,也是我所查到了的最多的解释 top-1 就是你预测的label取最后概率向量里面最大的那一个作为预测结果,如果你的预测结果中概率最大的那个分类正确,则预测正确.否则预测错误 top-5 就是 ...

最新文章

  1. Shine Button动画效果 类似Tinder APP的卡片界面
  2. springmvc学习笔记--ueditor和springmvc的集成
  3. Win7系统忘记登入密码的解决方法
  4. 小米折叠屏手机真机现身:疑似跳票两年的MIX 4……
  5. 树的合并 connect
  6. linux运维架构师职业规划
  7. 这些面试细节90%的人都没注意!怪不得简历白投了...
  8. equals()重写之后为什么要重写hashCode()方法
  9. 关于如何安装cocoapods
  10. 事情又没有后续,吾真想质问头目,汝是为吾干活吗?
  11. Delphi7 SqlServer实现数据的CRUD(一)
  12. 烟台蓬莱机场停车费一天多少钱,烟台机场停车哪里便宜
  13. 几个不知道算不算经典的游戏
  14. 深入浅出的讲解傅里叶变换(真正的通俗易懂)
  15. 各宽带接入服务商简称整理
  16. 常用标点符号中英文对照表
  17. 军队武器java代码
  18. Column ‘‘ in field list is a ambiguous
  19. easyUi input标签的失去焦点事件
  20. 分词 - 准确率评测

热门文章

  1. UG OPEN C API 函数参考手册(nx6) CHM版
  2. 基于51单片机的超声波倒车雷达防撞系统 原理图程序设计 数码管显示
  3. CAN总线的数据解析
  4. git 导出指定文件的所有commits
  5. 内网渗透-Linux内网渗透
  6. php框架打印session,PHP框架搭建之session和token的抉择
  7. sublime text2 两文件比较
  8. 嵌入式开发——Linux C学习
  9. 传统线下连锁店数据分析Python结合Tableau
  10. 安装aspera和使用