Pytorch中index_select() 函数的实现理解


Posted in Python onNovember 19, 2019

函数形式:

index_select(
 dim,
 index
)

参数:

  • dim:表示从第几维挑选数据,类型为int值;
  • index:表示从第一个参数维度中的哪个位置挑选数据,类型为torch.Tensor类的实例;

刚开始学习pytorch,遇到了index_select(),一开始不太明白几个参数的意思,后来查了一下资料,算是明白了一点。

a = torch.linspace(1, 12, steps=12).view(3, 4)
print(a)
b = torch.index_select(a, 0, torch.tensor([0, 2]))
print(b)
print(a.index_select(0, torch.tensor([0, 2])))
c = torch.index_select(a, 1, torch.tensor([1, 3]))
print(c)

先定义了一个tensor,这里用到了linspace和view方法。

第一个参数是索引的对象,第二个参数0表示按行索引,1表示按列进行索引,第三个参数是一个tensor,就是索引的序号,比如b里面tensor[0, 2]表示第0行和第2行,c里面tensor[1, 3]表示第1列和第3列。

输出结果如下:

tensor([[ 1.,  2.,  3.,  4.],
        [ 5.,  6.,  7.,  8.],
        [ 9., 10., 11., 12.]])
tensor([[ 1.,  2.,  3.,  4.],
        [ 9., 10., 11., 12.]])
tensor([[ 1.,  2.,  3.,  4.],
        [ 9., 10., 11., 12.]])
tensor([[ 2.,  4.],
        [ 6.,  8.],
        [10., 12.]])

功能:从张量的某个维度的指定位置选取数据。

代码实例:

t = torch.arange(24).reshape(2, 3, 4) # 初始化一个tensor,从0到23,形状为(2,3,4)
print("t--->", t)
 
index = torch.tensor([1, 2]) # 要选取数据的位置
print("index--->", index)
 
data1 = t.index_select(1, index) # 第一个参数:从第1维挑选, 第二个参数:从该维中挑选的位置
print("data1--->", data1)
 
data2 = t.index_select(2, index) # 第一个参数:从第2维挑选, 第二个参数:从该维中挑选的位置
print("data2--->", data2)

运行结果: 

t---> tensor([[[ 0,  1,  2,  3],
               [ 4,  5,  6,  7],
               [ 8,  9, 10, 11]],
 
              [[12, 13, 14, 15],
               [16, 17, 18, 19],
               [20, 21, 22, 23]]])
 
index---> tensor([1, 2])
 
data1---> tensor([[[ 4,  5,  6,  7],
                   [ 8,  9, 10, 11]],
 
                  [[16, 17, 18, 19],
                   [20, 21, 22, 23]]])
 
data2---> tensor([[[ 1,  2],
                   [ 5,  6],
                   [ 9, 10]],
 
                  [[13, 14],
                   [17, 18],
                   [21, 22]]])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python subprocess模块学习总结
Mar 13 Python
Python中用PIL库批量给图片加上序号的教程
May 06 Python
Python在Windows和在Linux下调用动态链接库的教程
Aug 18 Python
Python装饰器基础详解
Mar 09 Python
Python中最大最小赋值小技巧(分享)
Dec 23 Python
pytorch + visdom 处理简单分类问题的示例
Jun 04 Python
python 使用pandas计算累积求和的方法
Feb 08 Python
python实现批量视频分帧、保存视频帧
May 31 Python
Pytorch转tflite方式
May 25 Python
Python基于gevent实现文件字符串查找器
Aug 11 Python
Python中读取文件名中的数字的实例详解
Dec 25 Python
Django实现drf搜索过滤和排序过滤
Jun 21 Python
wxPython多个窗口的基本结构
Nov 19 #Python
windows中安装Python3.8.0的实现方法
Nov 19 #Python
让你的Python代码实现类型提示功能
Nov 19 #Python
wxPython实现分隔窗口
Nov 19 #Python
浅谈Python type的使用
Nov 19 #Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
Nov 19 #Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 #Python
You might like
第二节 对象模型 [2]
2006/10/09 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
php设置静态内容缓存时间的方法
2014/12/01 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
js split 的用法和定义 js split分割字符串成数组的实例代码
2012/05/13 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
深入浅析JavaScript中数据共享和数据传递
2016/04/25 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
Javascript实现数组中的元素上下移动
2017/04/28 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
zepto.js 实时监听输入框的方法
2018/12/04 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
[00:57]英雄,你的补给到了!
2020/11/13 DOTA
利用Python将文本中的中英文分离方法
2018/10/31 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
在 Jupyter 中重新导入特定的 Python 文件(场景分析)
2019/10/27 Python
Python如何在DataFrame增加数值
2020/02/14 Python
使用pygame编写Flappy bird小游戏
2020/03/14 Python
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
先进个人事迹材料
2014/01/25 职场文书
高中生期末评语大全
2014/01/28 职场文书
人力资源主管职责范本
2014/03/05 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
小学生安全保证书
2015/05/09 职场文书
离婚纠纷代理词
2015/05/23 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python
浅谈MySQL user权限表
2021/06/18 MySQL
Python pandas读取CSV文件的注意事项(适合新手)
2021/06/20 Python
Python实现滑雪小游戏
2021/09/25 Python