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写的贪吃蛇游戏例子
Jun 16 Python
Python读取图片EXIF信息类库介绍和使用实例
Jul 10 Python
Python实现截屏的函数
Jul 25 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
ubuntu16.04制作vim和python3的开发环境
Sep 23 Python
python如何求解两数的最大公约数
Sep 27 Python
OpenCV图像颜色反转算法详解
May 13 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
浅析pandas 数据结构中的DataFrame
Oct 12 Python
python多线程并发及测试框架案例
Oct 15 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 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
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
深入HTTP响应状态码速查表的详解
2013/06/07 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
php模式设计之观察者模式应用实例分析
2019/09/25 PHP
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
jQuery中对节点进行操作的相关介绍
2013/04/16 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
javascript实现拖动元素交换位置
2015/11/29 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
浅析JavaScript Array和string的转换(推荐)
2016/05/20 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
微信小程序绑定手机号获取验证码功能
2019/10/22 Javascript
python中wx将图标显示在右下角的脚本代码
2013/03/08 Python
10款最好的Web开发的 Python 框架
2015/03/18 Python
python操作字典类型的常用方法(推荐)
2016/05/16 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
Python hashlib模块用法实例分析
2018/06/12 Python
python模糊图片过滤的方法
2018/12/14 Python
用python实现名片管理系统
2020/06/18 Python
Flask中jinja2的继承实现方法及实例
2021/03/03 Python
HTML5的video标签的浏览器兼容性增强方案分享
2016/05/19 HTML / CSS
三八节主持词
2014/03/17 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
2016年乡镇七一建党节活动总结
2016/04/05 职场文书
golang 在windows中设置环境变量的操作
2021/04/29 Golang
使用javascript解析二维码的三种方式
2021/11/11 Javascript
python 判断文件或文件夹是否存在
2022/03/18 Python
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技