官方文档:https://pytorch.org/docs/stable/generated/torch.topk.html?highlight=topk#torch.topk

由于numpy本身是没有提供topk方法的,自己写一个有时候又很蛋疼(懒得写),在这种情况下便可以考虑pytorch提供的topk:

values, indices = torch.topk(input, k, dim=None, largest=True, sorted=True, *, out=None)
  • input:输入tensor
  • k:字面意思
  • dim:按哪一维进行排序
  • sorted:返回的元素是否要排序
  • values:最大的k个值
  • indices:最大值所对应的下标

一般来说,很多情况下单纯就是馋这个indices,这里举一个实际中可能遇到的例子。比如说,我们现在有一个图片的list:

image_name = ['A.jpg', 'B.jpg', 'C.jpg', 'D.jpg', 'E.jpg']

每张图片对应有一个分数:

score = [0.57, 0.59, 0.38, 0.77, 0.25]

要将分数最高的三张图片给选出来。一种方法是利用面向对象的思想将其建模为一个class然后定义规则进行排序,这里我们利用topk的方式如下:

import numpy as np
import torchname = ['A.jpg', 'B.jpg', 'C.jpg', 'D.jpg', 'E.jpg']
score = [0.57, 0.59, 0.38, 0.77, 0.25]name = np.array(name)
score = torch.Tensor(score)
val, idx = torch.topk(score, 3)
idx = idx.numpy()
print(name[idx])

输出结果为:

['D.jpg' 'B.jpg' 'A.jpg']

Pytorch torch.topk()的简单用法相关推荐

  1. Pytorch torch.rsqrt()的简单用法

    官方文档:https://pytorch.org/docs/master/generated/torch.rsqrt.html 简单来说就是对每个元素取平方根后再取倒数,即: out i=1input ...

  2. Pytorch torch.mean()的简单用法

    简单来说就是求平均数. 比如以下的三种简单情况: import torchx1 = torch.Tensor([1, 2, 3, 4]) x2 = torch.Tensor([[1],[2],[3], ...

  3. Pytorch torch.manual_seed()的简单用法

    简单来说就是指定随机数种子(种子可以是个任意int值),用来生成伪随机数: import torchtorch.manual_seed(1) print(torch.rand(1)) print(to ...

  4. Pytorch torch.nonzero()的简单用法

    官方文档:https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch/ 顾名思义,返回非零元素的索引: 先从一维的看起: ...

  5. Pytorch nn.DataParallel()的简单用法

    简单来说就是使用单机多卡进行训练. 一般来说我们看到的代码是这样的: net = XXXNet() net = nn.DataParallel(net) 这样就可以让模型在全部GPU上训练. 方法定义 ...

  6. Pytorch transforms.Resize()的简单用法

    简单来说就是调整PILImage对象的尺寸,注意不能是用io.imread或者cv2.imread读取的图片,这两种方法得到的是ndarray. 将图片短边缩放至x,长宽比保持不变: transfor ...

  7. PyTorch 笔记(08)— Tensor 比较运算(torch.gt、lt、ge、le、eq、ne、torch.topk、torch.sort、torch.max、torch.min)

    1. 常用函数 比较函数中有一些是逐元素比较,操作类似逐元素操作,还有一些类似归并操作,常用的比较函数如下表所示. 表中第一行的比较操作已经实现了运算符重载,因此可以使用 a>=b,a>b ...

  8. PyTorch搜索Tensor指定维度的前K大个(K小个)元素--------(torch.topk)命令参数详解及举例

    torch.topk 语法 torch.topk(input, k, dim=None, largest=True, sorted=True, *, out = None) 作用 返回输入tensor ...

  9. torch.topk和tensor.topk

    https://pytorch.org/docs/stable/generated/torch.topk.html#torch.topk 1. 定义 按照指定的维度进行数值大小的排序,返回top-k个 ...

最新文章

  1. 创建在“system.net/defaultProxy”配置节中指定的 Web 代理时出错。
  2. DbUtils工具类使用
  3. 管道过滤器模式(Pipe and Filter)与组合模式(修改)
  4. 100亿人口会挨饿吗?人工智能迎击全球粮食问题
  5. LoRa、蓝牙、技术在电子显示牌上的应用
  6. spark任务shell运行_大数据系列:Spark的工作原理及架构
  7. 华为隐藏功能扩大内存代码大全_发现将华为手机这3个功能打开,竟然可以将手机性能极限发挥...
  8. iOS开发--UIKit控件之UISearchBar(搜索栏)
  9. centos6.5 nginx开机启动
  10. AI界的革命!终于可以自动标注了!
  11. Delphi7--运算符和表达式
  12. Tempo数据分析平台,助力企业高效完成数据预处理工作
  13. 列车停站方案_基于节点分级的高速铁路列车停站方案设计策略
  14. 重识Nginx - 15 使用信号管理Nginx的父子进程
  15. 小米历史版本在哪下载
  16. 1124: 成语接龙
  17. (免费分享)基于javaweb,ssm旅游信息系统
  18. 神州网信版windows10可以上网,但是网络显示无法连接到Internet
  19. python日志审计系统_日志审计系统
  20. EL852 代替品 喆光WISELITE MPC-852光电晶体管 60mA 350V达林顿输出晶体管

热门文章

  1. WAV音频文件结构及录制
  2. c语言http协议头字符串,c语言http请求解析表单内容
  3. java AST 表达式_Atitti.java exp ast java表达式语法ast构造器
  4. eclipse java读取文件_在eclipse完成对Java_web项目里面资源文件的读取
  5. python __name__怎么使用_python学习笔记26(python中__name__的使用)
  6. python递归算法案例教案_Python电子教案2-1-Python程序实例解析.ppt
  7. C++的文件读写以及python的文件读写
  8. ## CSP 201409-1相邻数对(C语言)(100分)
  9. PyTorch——深度神经网络的写作笔记
  10. Android中如何使按钮的背景变得透明