【Torch API】pytorch中的torch.topk() 函数详解

PyTorch中的topk方法以及分类Top-K准确率的实现 PyTorch中的topk方法以及分类Top-K准确率的实现 Top-K 准确率 在分类任务中的类别数很多时(如ImageNet中1000类),通常任务是比较困难的,有时模型虽然不能准确地将ground truth作为最高概率预测出来,但通过学习,至少groud truth的准确率能够在所有类中处于很靠前的位置,这在现实生活中也是有一定应用意义的,因此除了常规的Top-1 Acc,放宽要求的Tok-K Acc也是某些分类任务的重要指标之一。 Tok-K准确率:即指在模型的预测结果中,前K个最高概率的类中有g 阅读详情

作用: 返回 列表中最大的n个值

例子1:m=torch.arange(0,10)
             print(m.topk(3))

torch.return_types.topk(
values=tensor([9, 8, 7]),
indices=tensor([9, 8, 7]))

例子2:pred = torch.tensor([[-0.5816, -0.3873, -1.0215, -1.0145,  0.4053],
        [ 0.7265,  1.4164,  1.3443,  1.2035,  1.8823],
        [-0.4451,  0.1673,  1.2590, -2.0757,  1.7255],
        [ 0.2021,  0.3041,  0.1383,  0.3849, -1.6311]])

values, indices = pred.topk(4, dim=0, largest=True, sorted=True)

print(values)
print(indices)

tensor([[ 0.7265,  1.4164,  1.3443,  1.2035,  1.8823],
        [ 0.2021,  0.3041,  1.2590,  0.3849,  1.7255],
        [-0.4451,  0.1673,  0.1383, -1.0145,  0.4053],
        [-0.5816, -0.3873, -1.0215, -2.0757, -1.6311]])
tensor([[1, 1, 1, 1, 1],
        [3, 3, 2, 3, 2],
        [2, 2, 3, 0, 0],
        [0, 0, 0, 2, 3]])

torch.topk(input, k, dim=None, largest=True, sorted=True, out=None) 

input -> 输入tensor
k -> 前k个
dim -> 默认为输入tensor的最后一个维度
sorted -> 是否排序
largest -> False表示返回第k个最小值

torch 常用函数讲解【Ⅰ】 如果没有显式指明,则认为稀疏张量对应的完整张量应该在包含全部指定的非零元素的前提下,包含尽可能少的零元素。,因此可以判断出视图第一行的第二个元素为与第一行的第一个元素距离为 0,即视图第一行的第二个元素为存储序列的第一个元素。要求存在两个维度,第一维的数量表示稀疏张量对应的完整张量的维度个数,第二维的数量表示非零元素数量。,即视图第二行的第一个元素与视图第一行的第一个元素的距离为 0,即视图第二行的第一个元素也是存储序列的第一个元素。作用:返回对角线上的元素为 1,其他位置的元素为 0 的二维张量。 阅读详情

相关推荐

Pytorch快速入门系列---(一)张量及运算

在上面的例子中,我们演示了如何调用pytorch中的函数查看、修改默认数据类型,但是这种修改是全局的,如何我们想要把一个张量a(32位浮点型)转换为16位有符号整型但是又不影响其他张量的数据类型怎么办呢?我们接着看下面一个例子。torch.sort()函数:对一维张量进行排序,或者对高维张量在指定的维度进行排序,在输出排序结果的同时,还会输出对应的值在原始位置的索引。张量计算主要包括张量之间的大小比较、张量的基本运算(元素之间的运算和矩阵之间的运算)、张量与统计相关的运算(排序、最大值、最小值)

qq_42681787的博客 4534

Pytorch常用函数-topk

topk()方法用于返回输入数据中特定维度上的前k个最大的元素。 参数说明: 总结 使用torch.topk可以指定特定维度、特定前N个最大/最小值,并输出其值和索引。

helloworld_Fly的博客 1802

PyTorch中的小技巧:如何获取最小的k个元素

本文介绍了在PyTorch中获取最小k个元素的方法。虽然PyTorch没有直接提供mink函数,但可以通过torch.topk(x, k, largest=False)实现相同功能。文章通过示例演示了如何获取张量中的最小元素,并解释了这种设计简化API、提高代码复用性的优点。实际应用场景展示了该方法在查找最低分数等任务中的实用性。

m0_62153576的博客 33

pytorch 中的topk函数

pytorch中topk() 函数用法 1. 函数介绍 最近在代码中看到这两个语句 maxk = max(topk) _, pred = output.topk(maxk, 1, True, True) 这个函数是用来求output中的最大值或最小值,返回两个参数:其一返回output中的最大值(或最小值),其二返回该值的索引。 2. topk()函数原型: (具体的用法...

liguiyuan的博客 4633

基于ROS2的无人机野生动物巡查系统设计

自主巡检系统是嵌入式人工智能与机器人技术融合的关键应用方向,其核心在于多源感知融合、实时路径规划与端侧智能识别的协同实现。原理上依赖SLAM定位构建环境地图,结合栅格化建模与混合路径算法(如蚁群+BFS)达成全覆盖遍历;技术价值体现在资源受限平台下的确定性响应与时空对齐能力,支撑高鲁棒性野外作业。典型应用场景包括生态监测、禁飞区巡检及小尺度智能安防。本文围绕ROS2 Humble中间件架构、Livox激光雷达与MaixCAM视觉协同、YOLO11n INT8模型端侧部署等关键技术展开,突出嵌入式AI与实时控

weixin_30598047的博客 649

AGX Orin 部署PyTorch与Torchvision 2026避坑指南

本文提供了2026年在AGX Orin开发板上部署PyTorch与Torchvision的详细避坑指南。针对ARM64架构和JetPack 6.2系统,重点解决了Python 3.10环境配置、官方wheel包安装、torchvision源码编译等关键步骤,并分享了常见问题解决方案和性能优化技巧,确保深度学习环境稳定运行。

sky77的博客 752

pytorch中tensor与ndarray转换,torch中topk、squeeze、cpu等API的应用

print(preds.shape) print(preds) preds = preds.data.cpu() print(preds.shape) print(preds) preds = preds.numpy() print(preds.shape) print(preds)

qq_42560049的博客 1540

WAVE格式

一.wave格式概述 Wave文件格式是用于多媒体文件存储的Microsoft RIFF(Resource Interchange FileFormat)的一个子集。每一个RIFF文件以一个文件头开始,后面是一系列数据块。Wave文件通常是包含“WAVE”块的RIFF文件。而该“WAVE”块由两个子块组成,称为“fmt”块。“fmt”块用于确定数据格式,并且“data”块包含实际的样本数据,

yejia1280的博客 4389

Torch 常见的对矩阵指定位置添值、取值,以及TopK等操作

注意:这里split_size_or_sections可以是int也可以是list>>> a[2, 3],[4, 5],[6, 7],[8, 9]])[2, 3]]),[6, 7]]),[4, 5],[6, 7],[8, 9]]))此外,在对于dim=1print(a)[2, 3],[4, 5],[6, 7],[8, 9]])[2],[4],[6],[3],[5],[7],[9]]))tensor.split()比较关键的一点是可以保持原始形状而不会二维变一维。

yang8530635的博客 1623

【yolo】YOLOv8模型导出完全指南:从PT到ONNX及其他格式的完整实践

摘要:本文全面介绍了YOLOv8模型从PT格式导出为ONNX等部署格式的完整流程与最佳实践。重点解析了关键参数(如format、imgsz、simplify)的作用机制,特别强调输入尺寸imgsz会自动继承训练尺寸的特性,并提供了ONNX、TensorRT等格式的典型导出配置方案。文章还总结了常见问题解决办法,推荐使用simplify优化模型性能,同时分享了通过C#实现模型重命名的实用技巧。最后指出"训练决定能力,导出定义接口"的核心原则,帮助开发者高效完成模型部署转换。

songhuangong123的博客 1917

优化dalsa相机检测界面

上节实现了使用qt结合dalsa相机显示检测到缺陷的画面,由于窗口过于简陋,本节将进行一个界面优化。

A1983Z的博客 986

pytorch中的函数参数dim详解

对于刚入门的新手来说,Torch API中的维度真的很迷惑人.例如 torch.sum(x, dim=0) 是按着行相加呢,还是列相加?还有TopK,softmax等函数。

2401_84036521的博客 288

3D 结构光相机工作原理全解 | 从编码投射到三维重建,原理 + 代码 + 工业实战一站式掌握

本文从3D结构光相机的整体架构出发,层层拆解了编码投射、相位计算、相位解包裹、三维重建的核心原理,补充了工业实战所需的公式推导、代码实现、参数调优、设备选型和案例落地,核心总结如下:相位是3D结构光成像的“灵魂”,其精度、稳定性直接决定3D重建的效果,包裹相位与绝对相位的区分的是工业实战的基础;编码投射的核心是“正弦条纹+格雷码条纹”组合,正弦条纹负责高精度相位提取,格雷码条纹辅助解包裹,适配工业场景的精度与稳定性需求;

getusushu的博客 414

PyTorch torch.max底层原理与工程避坑指南

torch.max是PyTorch中关键的张量维度聚合算子,其本质并非简单取最大值,而是遵循‘维度压缩+计算图保全’的设计原则,通过返回(values, indices)二元组支持可导、可广播、可复现的极值提取。它在分类预测、通道注意力、序列掩码和硬样本挖掘等场景中承担核心角色,但极易因dim理解偏差、keepdim误设、dtype不匹配或设备混用引发shape错乱、梯度截断、显存溢出等生产级故障。掌握其与torch.topk的分工边界、对nan_policy的支持差异及多维压缩坐标系建模方法,是构建稳定深

weixin_30421809的博客 478

IgH EtherCAT 从入门到精通:第 29 章 实战:EoE 远程维护通道搭建

摘要:本章详细介绍了基于EoE(Ethernet over EtherCAT)协议的远程维护通道搭建方案。主要内容包括:1)网络架构设计,采用管理网络与EoE子网隔离的方案;2)从站EoE支持确认与IP地址配置,提供API和命令行两种方式;3)路由/交换两种部署模式,重点推荐路由模式并给出自动化配置脚本;4)SSH远程访问配置,包括直接连接和跳板访问两种方式;5)安全加固措施,如防火墙规则、SSH密钥认证等;6)故障恢复机制与性能注意事项。该方案实现了通过EtherCAT网络对从站设备的远程SSH访问、文件

从事嵌入式linux android驱动开发,拥有全栈能力 360

优秀的 Verilog/FPGA开源项目介绍(二十六)- ISP (图像信号处理)

介绍查看《ISP算法及架构分析介绍》今天项目的顺序就是先介绍几个关于ISP算法架构的项目,包括python、matlab、c等高级语言实现的ISP算法架构,最后介绍一个FPGA实现ISP的项目。openISPhttps://github.com/cruxopen/openISP项目介绍用python实现的ISP架构,该架构涉及到的知识如下:下图是最新实现的模块:主要模块如...

OpenFPGA的博客 4946

pytorch中函数参数dim的理解

对于刚入门的新手来说,Torch API中的维度真的很迷惑人.例如 torch.sum(x, dim=0) 是按着行相加呢,还是列相加?还有TopK,softmax等函数。

一璐有你的专栏 4273

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

PyTorch torch.Tensor 权威指南:张量创建、索引、自动求导与核心 API 全解析

`torch.Tensor` 是 PyTorch 深度学习框架中最核心的数据结构,是一个保存单一数据类型元素的多维矩阵。本指南以仓库文档 [docs/source/tensors.md](https://link.gitcode.com/i/86d5bae4c8e55f1b2cae9e930e35fc2f) 为主体,结合仓库源码(`torch/_tensor.py`、`torch/_refs/__

gitblog_00928的博客 482

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

小白学Pytorch系列--Torch API (7)

小白学Pytorch系列--Torch API (7)

发呆的比目鱼的博客 2019

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

CANN ops-transformer torch_extension 接口全览:PyTorch 风格算子 API 使用指南

本文围绕 [docs/zh/torch_api_list.md](https://link.gitcode.com/i/f82dca0665fc59e8a27d5d1855fa69c2) 中登记的 torch_extension 接口清单展开,系统介绍 CANN ops-transformer 如何通过一套兼容 PyTorch 原生风格的 API,把 Transformer 类大模型算子(Flas

gitblog_00243的博客 472

PyTorch torch 命名空间完全指南:张量运算、加速器、随机采样与序列化全景解析

本文以 PyTorch 官方 API 参考文档 [docs/source/torch.md](https://link.gitcode.com/i/5aff889c4a5aeabb4569fc91376775fe) 为骨架,系统梳理顶层 `torch` 命名空间的核心能力,涵盖张量创建与索引、加速器(CUDA/XPU/MPS 等)体系、随机采样、序列化、并行控制、梯度禁用、各类数学运算、符号数字与

gitblog_00058的博客 685

别再只会用torch.argmax找最大值了!PyTorch张量操作的7个隐藏技巧

本文深入探讨了PyTorch中超越torch.argmax的七个高级张量操作技巧,包括与gather、where、reshape等函数的组合应用,以及广播、梯度处理与topk扩展。这些技巧能帮助开发者以向量化思维替代低效循环,编写出更优雅、高性能的代码,提升数据处理和模型训练效率。

earth的博客 400

PyTorch原生10倍加速LLaMA推理:torch.compile+KV缓存优化实战

大语言模型本地推理性能瓶颈往往不在GPU算力,而在CPU调度、内存拷贝与KV缓存管理等系统级开销。理解Transformer自回归生成的本质——‘计算→缓存→循环’闭环,是实现高效推理的前提。基于PyTorch 2.0+的torch.compile机制,通过编译器级图优化、预分配KV缓存、prefill/decode分离编译及轻量张量并行,可在不依赖vLLM、llama.cpp等第三方库的前提下,将LLaMA-7B在单卡A100上的吞吐从24提升至244 token/s。该方案兼顾工程可维护性与硬件利用率,

diegouyi3472的博客 429

pytorch api(2)

floor 向下 ceil 向上 trunc 取证 frac 小数部分 pytorch 常用基础函数 https://www.jianshu.com/p/d678c5e44a6b ge是大于等于 gt是大于 le是小于等于 lt 是小于 都要每个元素相对应的挨个去比较 上面是选择在哪个dim上找最大的,下面是不改变原来的dim意思 a.topk(3,dim=1) 表示是最大的三个数值 tor...

weixin_43758551的博客 176

《Pytorch学习指南》- 基础API(2)

1. inplace和广播机制 in-place 操作 就地操作, 不适用临时变量, 比如 a.add_(b) = a + b => 计算结果直接赋值给 a 等价于 a += b 广播机制 张量参数可以自动的扩展为相同的大小 广播机制满足的条件 每个张量至少有一个维度 满足右对齐 : 例如 torch.rand(2,1,1) 和 torch.rand(3) , 如果维度的最后一个维度, 比如 torch.rand(2,1,1) 最后一个是1, torch.rand(3)最后一个维度是3 满

兀坐晴窗独饮茶 248

揭秘PyTorch 3.0 C++前端API:如何从零开发高效自定义算子

掌握PyTorch 3.0 C 前端 API 的自定义算子开发,提升模型性能与部署效率。本文详解算子注册、CUDA内核集成与自动微分实现,适用于高性能推理与定制化网络层开发,提供完整编译与调试方案,值得收藏。

CodeNexus的博客 1105
上一篇: 【Torch API】pytorch中的torch.sort()函数解析
下一篇: 【Torch API】pytorch中的torch.where()函数详解
devil_son1234
博客等级 码龄9年 64粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值