一维Tensor作为索引

在Numpy中,我们可以传入数组作为索引,称为花式索引。这里只演示使用两个一维List的例子。

In[42]: a=np.arange(18).reshape(6,3)
In[43]: a
Out[43]:
array([[ 0,  1,  2],[ 3,  4,  5],[ 6,  7,  8],[ 9, 10, 11],[12, 13, 14],[15, 16, 17]])
In[44]: a[[1,2,3],[0,1,2]]
Out[44]: array([ 3,  7, 11]) # 相当于选择了下标分别为[1,0], [2,1], [3,2]的元素

而在PyTorch中,如果使用两个整数List/一维Tensor作为索引,所起的作用是相同的。

In[45]: w=torch.arange(18).view(6,3)
IN[46]: w
Out[46]:
tensor([[ 0,  1,  2],[ 3,  4,  5],[ 6,  7,  8],[ 9, 10, 11],[12, 13, 14],[15, 16, 17]])
In[47]: w[[1,2,3],[0,1,2]]
Out[47]: tensor([ 3,  7, 11])
In[48]: w[torch.tensor([1,2,3]),torch.tensor([0,1,2])]
Out[48]: tensor([ 3,  7, 11])

二维Tensor作为索引

下面的例子使用了二维Tensor作为索引,注意把[[1,2,3],[0,1,2]]和上一小节的两个一维Tensor[1,2,3],[0,1,2]区分开。通过下面的例子可以发现,二维Tensor作为索引时,每个索引中的元素都作为w的第一维度的下标(即行号)用于选择w中第一维的元素。例如二维索引[[1,2,3],[0,1,2]]中的3选出了w的第四行[ 9, 10, 11]。 下面例子中,索引形状为[2,3],将索引中的每个元素用被索引的Tensor中对应行号的行替换之后,由于每一行有三列,故得到了[2,3,3]的结果

In[56]: w
Out[56]:
tensor([[ 0,  1,  2],[ 3,  4,  5],[ 6,  7,  8],[ 9, 10, 11],[12, 13, 14],[15, 16, 17]])
In[57]: w[torch.LongTensor([[1,2,3],[0,1,2]])]
Out[57]:
tensor([[[ 3,  4,  5],[ 6,  7,  8],[ 9, 10, 11]],[[ 0,  1,  2],[ 3,  4,  5],[ 6,  7,  8]]])

使用Tensor作为List的索引

当Tensor仅含有一个整数时,可以作为List的索引,相当于取出该整数作为索引。若含有多个整数,则报错。

In [1]: import torchIn [2]: a=[x for x in range(10)]In [3]: a
Out[3]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]In [4]: a[torch.tensor([[1]])]  # 相当于a[1]
Out[4]: 1In [5]: a[torch.tensor([[[5]]])]  # 相当于a[5]
Out[5]: 5In [6]: a[torch.tensor([[1,2]])]  # 多于1个整数,报错
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-6-ec87609b9152> in <module>()
----> 1 a[torch.tensor([[1,2]])]TypeError: only integer tensors of a single element can be converted to an index

PyTorch中使用Tensor作为索引相关推荐

  1. 实践教程 | 浅谈 PyTorch 中的 tensor 及使用

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者 | xiaopl@知乎(已授权) 来源 | https://z ...

  2. 【深度学习理论】一文搞透pytorch中的tensor、autograd、反向传播和计算图

    转载:https://zhuanlan.zhihu.com/p/145353262 前言 本文的主要目标: 一遍搞懂反向传播的底层原理,以及其在深度学习框架pytorch中的实现机制.当然一遍搞不定两 ...

  3. Python数据类型、Numpy数据类型和Pytorch中的tensor类型间的相互转化

    数据类型包括Python数据类型.Numpy数据类型和Pytorch中的tensor,Pytorch中的tensor又包括CPU上的数据类型和GPU上的数据类型. 一.Python数据类型 Pytho ...

  4. pytorch中谜一样的索引赋值法

    test import torch nums = 3 # 首先,我们随机生成一个3*5的矩阵 a = torch.randn(nums, 5) # 在列的维度(dim=0),取每列的最大值 overl ...

  5. pytorch 中的Tensor.detach介绍

    detach的作用 Tensor.detach() 的作用是阻断反向梯度传播,当我们再训练网络的时候可能希望保持一部分的网络参数不变,只对其中一部分的参数进行调整:或者值训练部分分支网络,并不让其梯度 ...

  6. pyTorch中tensor运算

    文章目录 PyTorch的简介 PyTorch中主要的包 PyTorch的安装 使用GPU的原因 使数据在GPU上运行 什么使Tensor(张量) 一些术语介绍 Tensor的属性介绍(Rank,ax ...

  7. pytorch中tensor、backward一些总结

    目录 说明 Tensor Tensor的创建 Tensor(张量)基本数据类型与常用属性 Tensor的自动微分 设置不可积分计算 pytorch 计算图 backward一些细节 该文章解决问题如下 ...

  8. pytorch中的卷积操作详解

    首先说下pytorch中的Tensor通道排列顺序是:[batch, channel, height, width] 我们常用的卷积(Conv2d)在pytorch中对应的函数是: torch.nn. ...

  9. [PyTorch] 深度学习框架PyTorch中的概念和函数

    Pytorch的概念 Pytorch最重要的概念是tensor,意为"张量". Variable是能够构建计算图的 tensor(对 tensor 的封装).借用Variable才 ...

最新文章

  1. 对实体 useSSL 的引用必须以 ';' 分隔符结尾。
  2. replace into mysql去重_上传 phpexcel 类 入库并入库前去重
  3. 纪中B组模拟赛总结(2020.2.13)
  4. [vue] 说说你对Object.defineProperty的理解
  5. c# contains_清单 .Contains()方法,以C#为例
  6. 纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception
  7. 21 年前濒临倒闭的苹果是如何做到今天万亿市值的?
  8. Spring-core源码 -- AlternativeJdkIdGenerator Spring的UUID生成器类
  9. RUBY发送验证码通知短信(互亿无线)
  10. qq群发 java_qq聊天机器人 群发工具 (java版) (三)
  11. 如何将 Excel 数据分组后按次序横向排列
  12. 安徽农业大学计算机考研分数线,安徽农业大学历年考研分数线汇总[2012-2021]
  13. 赛福基因公开课第二节《神经系统遗传病基因检测简介》
  14. 第九周课堂作业 包括建表 进行各种查询
  15. FT2004(D2000)开发实战之W25X10CL固件烧写
  16. 数字资产支付行业研究报告 | TokenInsight
  17. element的事件想要传输额外的参数
  18. 光E电做好个人理财规划理财如此简单
  19. 研发思维08----嵌入式智能产品数据服务后端分析
  20. ArrayList.add方法底层浅析

热门文章

  1. php项目开发经验-2个月学习php经历
  2. Segmented Buttons
  3. cube 设置滴答定时器_stm32cubemx生成的代码总是进入滴答定时器中断
  4. android解压缩工具下载,ZArchiver解压缩工具
  5. elasticsearch aggregations 之一:引入buckets、metrics
  6. Liunx创建新用户登录异常:/usr/bin/xauth: error/timeout in locking authority file /home/liuqidong/.Xauthority
  7. html中list-style-type与list-style的区别
  8. 【007】工信部第一份关于操作系统实时性的测评报告
  9. WIN下免费pdf转图片PNG/JPG/TIFF软件,poppler和pdftocairo开源库编译,中文文件名出错修正
  10. Charles设置断点