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中的split()函数的使用方法
Apr 07 Python
用Python操作字符串之rindex()方法的使用
May 19 Python
python通过elixir包操作mysql数据库实例代码
Jan 31 Python
python实现SOM算法
Feb 23 Python
Python绘制3D图形
May 03 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
Jun 03 Python
Python如何调用JS文件中的函数
Aug 16 Python
在pycharm中实现删除bookmark
Feb 14 Python
python 装饰器功能与用法案例详解
Mar 06 Python
python打包生成so文件的实现
Oct 30 Python
Jupyter Notebook安装及使用方法解析
Nov 12 Python
jupyter使用自动补全和切换默认浏览器的方法
Nov 18 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
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
初识php MVC
2014/09/10 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
js实现网站首页图片滚动显示
2013/02/04 Javascript
在JavaScript中typeof的用途介绍
2013/04/11 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
vue+SSM实现验证码功能
2018/12/07 Javascript
JS中类的静态方法,静态变量,实例方法,实例变量区别与用法实例分析
2020/03/14 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
vue+swiper实现左右滑动的测试题功能
2020/10/30 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
python 网络爬虫初级实现代码
2016/02/27 Python
python实现内存监控系统
2021/03/07 Python
在Pycharm中对代码进行注释和缩进的方法详解
2019/01/20 Python
简单了解python的一些位运算技巧
2019/07/13 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
python 函数嵌套及多函数共同运行知识点讲解
2020/03/03 Python
python实现井字棋小游戏
2020/03/04 Python
Django serializer优化类视图的实现示例
2020/07/16 Python
HTML5中input输入框默认提示文字向左向右移动的示例代码
2020/09/10 HTML / CSS
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
畜牧兽医本科生个人的自我评价
2013/10/11 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
学习十八届四中全会精神思想汇报
2014/10/23 职场文书
工作建议书范文
2019/07/08 职场文书
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android