pytorch之张量切片函数index_select介绍

最近加入了一个deeplearning的学习小组开始学习pytorch,初始对这个向量切片函数index_select()感到有些疑惑,经过自己一番实验之后,应该算是懂了吧,和大家一起分享一下实验结果。

index_select有两种用法,一种是将某一个张量(tensor)作为变量传入torch.index_select()函数,还有一个是tensor的内置方法index_select。用法分别是

a=tensor.tensor([1,2])
# first use
c = torch.index_select(a, 1, torch.tensor([0]))
# second use
d = a.index_select(1 , torch.tensor([0]))

这两种用法的区别和python中的sort以及sorted函数有些类似。第一种用法 c会成为一个新的张量且不会和a共用内存,而第二种用法d会和a共用内存 

然后,如何使用这个切片函数呢?首先,我们看一下官方文档的介绍。

torch.index_select(input, dim, index, out=None) → Tensor

沿着指定维度对输入进行切片,取index中指定的相应项(index为一个LongTensor),然后返回到一个新的张量, 返回的张量与原始张量_Tensor_有相同的维度(在指定轴上)。

注意: 返回的张量不与原始张量共享内存空间。

参数:

  • input (Tensor) – 输入张量
  • dim (int) – 索引的轴
  • index (LongTensor) – 包含索引下标的一维张量
  • out (Tensor, optional) – 目标张量

其实只要搞清楚这里的 dim和index参数的含义就好。通常我们能够写出来的,直观的数组就是二维数组,可以把它想象成一个表格,行是第零维(注意索引是从0开始的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值