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函数找到最大的两个值及其索引和最小的两个值及其索引,并打印出结果。

相关推荐
星核0penstarry几秒前
B站AI大赛3万份投稿背后的真相:门槛下移后,新的壁垒是什么?
人工智能·个人开发·ai编程·自动写代码
新新学长搞科研14 分钟前
【EI检索丨院士主讲】2026年人工智能、大数据与社会计算国际学术会议(ABDSC 2026)
人工智能
广州山泉婚姻18 分钟前
C/C++动态内存:堆内存的申请、使用与释放
c++·人工智能
纪伊路上盛名在23 分钟前
Omni-Mol:用多模态大语言模型构建通用多任务分子模型
人工智能·语言模型·自然语言处理·蛋白质·通用模型·生物大分子·混合专家moe
硅谷秋水25 分钟前
超越模仿:通过离线策略Q-规划实现机器人策略的自我改进
人工智能·深度学习·机器学习·机器人
Fairy要carry28 分钟前
制造业实习02-控制下载速度的几个问题
人工智能
名字还没想好☜31 分钟前
Python 字符编码实战:encode/decode、UnicodeDecodeError 与 open 的 encoding 坑
开发语言·后端·python·编程语言
Csvn32 分钟前
第 21 章 排错与调试实战
人工智能·aigc·agent
科技林总37 分钟前
氛围编程场景下AI提示词使用核心原则
人工智能
面朝大海,春不暖,花不开37 分钟前
翻译自 英语
人工智能·机器学习