之前一直不清楚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. html5,增加flash插件
  2. 【状态保持】Cache 基于SQL 数据库 的缓存依赖 轮询机制详解
  3. php5 函数,2017PHP5函数大全
  4. spark-jar冲突解决方案
  5. Java中forEach, 用来遍历数组
  6. 编写下载服务器。 第六部分:描述您发送的内容(内容类型等)
  7. C语言指针这些使用技巧值得收藏!
  8. 成都信息工程c语言题库,成都信息工程学院C语言考试题及答案
  9. Collections和Collection的区别:
  10. 招商银行网络科技笔试
  11. 压力测试工具 ab工具
  12. Making a Kali Bootable USB Drive
  13. gnuradio3.8.2的安装步骤
  14. 大一java计算圆面积_Java练习题——计算圆的面积
  15. supermap制作专题图并发布
  16. Snaker-Designer在Eclipse中的安装和使用
  17. 用深度学习做命名实体识别(二):文本标注工具brat
  18. cocos2dx 中jsc反逆向为js
  19. 工作总结-理财需求分析
  20. sql创建注册服务器组,SQL Server创建服务器组操作步骤

热门文章

  1. SpringCloud config 原理分析
  2. arcgis 点查询
  3. css 对话框 水平居中,css 水平居中的几种实现方式
  4. 关于小米4电信4g刷入第三方ROM无信号解决办法
  5. 朴素的矩阵行列式计算之C++实现
  6. vs2017 vs2019 打开cs文件提示无法识别的GUID格式
  7. 博弈论(2)例题:混合策略+完全信息动态博弈+可置信性与序贯理性 (研究生院的竞争/否决权/技术应用) Steven Tadelis - Game Theory. An Introduction
  8. 折腾3天没有搞定我家云安装Dietpi,求大神指点
  9. 2075:【21CSPJ普及组】插入排序(sort)(三种做法,层层优化)
  10. 上传文件到GitHub上的两种方法(纯新手可以看看)