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)

结果如下:

相关推荐
TE-茶叶蛋几秒前
TF-IDF 与 BM25 深度解析:从理论到项目实战
python·django·tf-idf
xinshuGEO3 分钟前
企业做 AI 搜索优化时,Prompt 问题池应该怎么设计?一种智能体系统实现思路
人工智能·prompt
xcbrand4 分钟前
湖南VI设计公司排名
大数据·人工智能·python
IT_陈寒12 分钟前
Vite热更新失效?可能你在用Windows
前端·人工智能·后端
Matrix_1113 分钟前
手机里的计算摄影:广角形变校正算法
人工智能·算法·智能手机·计算摄影
-山中问答-18 分钟前
【智能体工具使用实战01】当智能体需要“动手”干活
人工智能·智能体·工具调用
大山佬26 分钟前
MCU 资源受限环境的高效系统设计:从内存池到任务调度的极致压缩方案
人工智能
行业研究员26 分钟前
2026腾讯会议语音转写实测推荐
人工智能·腾讯会议·语音转写
道可云28 分钟前
道可云人工智能&OPC每日资讯|工信部发布《“人工智能+信息通信”创新发展实施意见(2026—2028年)》
人工智能
lllsure32 分钟前
【开源项目】Learn Claude Code
python·ai