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将人民币转换大写的脚本代码
Feb 10 Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
Python实现简单的用户交互方法详解
Sep 25 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 Python
python实现beta分布概率密度函数的方法
Jul 08 Python
Django框架中序列化和反序列化的例子
Aug 06 Python
Python中的wordcloud库安装问题及解决方法
May 27 Python
基于python SMTP实现自动发送邮件教程解析
Jun 02 Python
pygame面向对象的飞行小鸟实现(Flappy bird)
Apr 01 Python
教你利用Selenium+python自动化来解决pip使用异常
May 20 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
星际RPG字典
2020/03/04 星际争霸
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP PDO和消息队列的个人理解与应用实例分析
2019/11/25 PHP
硬盘浏览程序,保存成网页格式便可使用
2006/12/03 Javascript
js常见表单应用技巧
2008/01/09 Javascript
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
JavaScript 的继承
2011/10/01 Javascript
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
JavaScript常用基础知识强化学习
2015/12/09 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
jQuery实现圣诞节礼物动画案例解析
2016/12/25 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
[01:20]DOTA2 齐天大圣至宝动态展示
2016/12/13 DOTA
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
微信跳一跳小游戏python脚本
2018/01/05 Python
Python模块WSGI使用详解
2018/02/02 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
python和C++共享内存传输图像的示例
2020/10/27 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
Guess荷兰官网:美国服饰品牌
2020/01/22 全球购物
Deichmann英国:德国鞋类零售商
2021/01/30 全球购物
应用化学专业职业生涯规划书
2013/12/31 职场文书
网络维护中文求职信
2014/01/03 职场文书
三月雷锋月活动总结
2014/07/03 职场文书
奖学金感谢信
2015/01/21 职场文书
出租车拒载检讨书
2015/01/28 职场文书
MBA推荐信怎么写
2015/03/25 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
浅谈python数据类型及其操作
2021/05/25 Python
MySQL数据管理操作示例讲解
2022/12/24 MySQL