pytorch中torch.gather()简单理解

1.作用

从输入张量中按照指定维度进行索引采集操作,返回值是一个新的张量,形状与 index 张量相同,根据指定的索引从输入张量中采集对应的元素。

2.问题

该函数的主要问题主要在dim维度上,dim=0 表示沿着第一个维度(行)进行索引采集,而 dim=1 表示沿着第二个维度(列)进行索引采集。
简单讲:dim=0,将在行上进行采集,行数不变,在列上取值,如下图中的例子torch.gather(input, dim=0, index=index),当dim=0时,[0,1]中0对应第一行第一列也就是1,1对应着第2行第2列(1在index的坐标为(1,2),dim=0,所以不用看index的行坐标的,只管纵坐标,也就是第2列。而此时值为1代表值input的行【需要+1,下标是从0开始的】,也就是第2行,值为4)也就是4;[1,0]中的1代表第2行第1列也就是3,0也就是第2列的第一行数据(此时index的0的坐标为(2,2),因为dim=0,也就不用看横坐标,也就是第二列。所以此时的0代表源input的行坐标,也就是第一行)也就是2

python 复制代码
input = torch.tensor([[1, 2], [3, 4], [5, 6]])
index = torch.tensor([[0, 1], [1, 0]])

result = torch.gather(input, dim=0, index=index)
result_colum = torch.gather(input, dim=1, index=index)
print("result:",result)
print("result_colum:",result_colum)

结果如下:

相关推荐
黎燃1 小时前
短视频平台内容推荐算法优化:从协同过滤到多模态深度学习
人工智能
TF男孩2 小时前
ARQ:一款低成本的消息队列,实现每秒万级吞吐
后端·python·消息队列
飞哥数智坊2 小时前
多次尝试用 CodeBuddy 做小程序,最终我放弃了
人工智能·ai编程
后端小肥肠3 小时前
别再眼馋 10w + 治愈漫画!Coze 工作流 3 分钟出成品,小白可学
人工智能·aigc·coze
唐某人丶6 小时前
教你如何用 JS 实现 Agent 系统(2)—— 开发 ReAct 版本的“深度搜索”
前端·人工智能·aigc
FIT2CLOUD飞致云6 小时前
九月月报丨MaxKB在不同规模医疗机构的应用进展汇报
人工智能·开源
阿里云大数据AI技术6 小时前
【新模型速递】PAI-Model Gallery云上一键部署Qwen3-Next系列模型
人工智能
袁庭新7 小时前
全球首位AI机器人部长,背负反腐重任
人工智能·aigc
机器之心7 小时前
谁说Scaling Law到头了?新研究:每一步的微小提升会带来指数级增长
人工智能·openai
该用户已不存在7 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust