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模块restful使用方法实例
Dec 10 Python
跟老齐学Python之不要红头文件(2)
Sep 28 Python
简单介绍Python中用于求最小值的min()方法
May 15 Python
同时安装Python2 & Python3 cmd下版本自由选择的方法
Dec 09 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
python实现反转部分单向链表
Sep 27 Python
Python中GIL的使用详解
Oct 03 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
简单了解python中的f.b.u.r函数
Nov 02 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
python 已知三条边求三角形的角度案例
Apr 12 Python
python 解决Fatal error in launcher:错误问题
May 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
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
PHP daddslashes 使用方法介绍
2012/10/26 PHP
解析php开发中的中文编码问题
2013/08/08 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
php图片添加水印例子
2016/07/20 PHP
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
Array的push与unshift方法性能比较分析
2011/03/05 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
JS实现秒杀倒计时特效
2020/01/02 Javascript
Javascript如何实现扩充基本类型
2020/08/26 Javascript
vue 中的动态传参和query传参操作
2020/11/09 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
vue自定义组件实现双向绑定
2021/01/13 Vue.js
[00:17]天涯墨客一技能展示
2018/08/25 DOTA
用Python中的字典来处理索引统计的方法
2015/05/05 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
深入理解Python对Json的解析
2017/02/14 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
利用Python库Scapy解析pcap文件的方法
2019/07/23 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
python实现扑克牌交互式界面发牌程序
2020/04/22 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
初中生思想道德自我评价
2015/03/09 职场文书
2015年党风廉政建设工作总结
2015/04/09 职场文书
2015年工程部工作总结
2015/04/30 职场文书
Nginx配置之禁止指定IP访问
2022/05/02 Servers