PyTorch中torch.gather()函数

本文详细介绍了PyTorch中的torch.gather函数,用于从Tensor中按指定索引获取数据。通过实例展示了如何根据行或列索引进行数据选取,包括单个值、乱序值及二维矩阵索引的选取。torch.gather适用于深度学习中从批量Tensor中获取自定义索引数据,其输入index的shape等于输出value的shape,索引值仅替换对应维度的索引。总结了torch.gather的使用要点并提供了简单理解方式。

一. torch.gather()函数

官方文档:torch.gather函数,定义:从原tensor中获取指定dim和指定index的数据。
看到这个核心定义,我们很容易想到gather()的基本想法其实就类似从完整数据中按索引取值般简单,比如下面从列表中按索引取值:

lst = [1, 2, 3, 4, 5]
value = lst[2]  # value = 3
value = lst[2:4]  # value = [3, 4]

上面的取值例子是取单个值或具有逻辑顺序序列的例子,而对于深度学习常用的批量tensor数据来说,我们的需求可能是选取其中多个且乱序的值,此时gather()就是一个很好的tool,它可以帮助我们从批量tensor中取出指定乱序索引下的数据,因此其用途如下:
用途:方便从批量tensor中获取指定索引下的数据,该索引是高度自定义化的,可乱序的。

二. 举例

找个3x3的二维矩阵做个实验:

import torch
tensor_0 = torch.arange(3, 12).view(3, 3)
print(tensor_0)

输出结果:

tensor([[ 3,  4,  5],
        [ 6,  7,  8
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值