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用plt画图时,cmp设置方法
Dec 13 Python
如何利用python给图片添加半透明水印
Sep 06 Python
python中的Elasticsearch操作汇总
Oct 30 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
tensorflow使用指定gpu的方法
Feb 04 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
python查看矩阵的行列号以及维数方式
May 22 Python
python绘制趋势图的示例
Sep 17 Python
Python析构函数__del__定义原理解析
Nov 20 Python
Python办公自动化之Excel(中)
May 24 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 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
星际实力自我测试
2020/03/04 星际争霸
php编写的一个E-mail验证类
2015/03/25 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
jsonp原理及使用
2013/10/28 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
js和jquery设置disabled属性为true使按钮失效
2014/08/07 Javascript
JavaScript编程学习技巧汇总
2016/02/21 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
手机图片预览插件photoswipe.js使用总结
2016/08/25 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
如何使用jquery实现文字上下滚动效果
2016/10/12 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
jQuery+ajax读取json数据并按照价格排序示例
2018/03/28 jQuery
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
vue实现购物车案例
2020/05/30 Javascript
Python Xml文件添加字节属性的方法
2018/03/31 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
Python字符串三种格式化输出
2020/09/17 Python
python更新数据库中某个字段的数据(方法详解)
2020/11/18 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
Nike瑞典官方网站:Nike.com (SE)
2018/11/26 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
工作证明范本(2篇)
2014/09/14 职场文书
同学毕业留言寄语
2015/02/27 职场文书
承诺保证书格式
2015/02/28 职场文书
学年个人总结范文
2015/03/05 职场文书
反邪教观后感
2015/06/11 职场文书
婚礼双方父亲致辞
2015/07/27 职场文书
python如何利用cv2模块读取显示保存图片
2021/06/04 Python
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python