pytorch torch.topk函数介绍

在 PyTorch 中,torch.topk函数用于在输入张量中找到最大的k个值及其索引。

一、函数语法

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

  • input:输入张量。
  • k:要返回的最大或最小元素的数量。
  • dim(可选):要进行操作的维度。如果为None,则在扁平的输入张量上进行操作。
  • largest(可选):如果为True,则返回最大的k个值;如果为False,则返回最小的k个值。
  • sorted(可选):如果为True,则返回的k个值将按降序(如果largest=True)或升序(如果largest=False)排列;如果为False,则返回的k个值的顺序是未定义的。
  • out(可选):输出张量,可以是一个已存在的张量,用于存储结果。

二、返回值

该函数返回一个包含两个张量的元组:

  1. 第一个张量是包含最大或最小的k个值的张量。
  2. 第二个张量是包含这些值在输入张量中的索引的张量。

三、使用示例

复制代码
import torch

# 创建一个二维张量
tensor = torch.tensor([[4, 2, 3], [1, 5, 6]])

# 找到每行中的最大的两个值及其索引
values, indices = torch.topk(tensor, k=2, dim=1, largest=True)
print("最大的两个值:", values)
print("对应的索引:", indices)

# 找到每列中的最小的两个值及其索引
values, indices = torch.topk(tensor, k=2, dim=0, largest=False)
print("最小的两个值:", values)
print("对应的索引:", indices)

在上述示例中,首先创建了一个二维张量。然后,分别在行维度和列维度上使用torch.topk函数找到最大的两个值及其索引和最小的两个值及其索引,并打印出结果。

相关推荐
方方洛1 分钟前
ray教程-15-RayServe与LLM服务
人工智能·分布式·机器学习
wuyk5553 分钟前
PyQt6-第14讲-数据库与Excel双向同步
数据库·python·ui·excel·pyqt
william_yangshun6 分钟前
【AI实战】VoiceStudio 中文版上手:本地跑语音克隆和有声书,646 种语言怎么用
人工智能
暧暧内含光6 分钟前
GUI Agent 架构设计笔记:感知压缩、上下文工程与执行机制
人工智能
我的xiaodoujiao11 分钟前
Django 权限系统项目实战详细图文教程 3--系统登录功能实现
后端·python·django
夕小瑶15 分钟前
Anthropic正式交表IPO,7%收入来自违规账号。。
人工智能
努力变大白17 分钟前
ReAct Agent 创建:tools 协议与文本 ReAct 双路线实践
python·agent·react框架
国科安芯17 分钟前
星上计算的第一道防线:低轨遥感卫星载荷处理链中的AS32S601型抗辐射MCU—— 面向高分辨率成像与在轨智能处理的场景化综述
大数据·网络·人工智能·单片机·算法·低轨卫星·抗辐射
武子康19 分钟前
HunyuanVideo-1.5 跑得更快,先减步数还是开缓存?
人工智能·后端·agent
CAIE研习社19 分钟前
已经做过AI工作流或智能体,还需要考什么证书?
人工智能