pytorch中index_select()的用法详解


Posted in Python onJanuary 06, 2021

pytorch中index_select()的用法

index_select(input, dim, index)

功能:在指定的维度dim上选取数据,不如选取某些行,列

参数介绍

  • 第一个参数input是要索引查找的对象
  • 第二个参数dim是要查找的维度,因为通常情况下我们使用的都是二维张量,所以可以简单的记忆: 0代表行,1代表列
  • 第三个参数index是你要索引的序列,它是一个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.]])

示例2 

import torch
 
x = torch.Tensor([[[1, 2, 3],
          [4, 5, 6]],
 
         [[9, 8, 7],
          [6, 5, 4]]])
print(x)
print(x.size())
index = torch.LongTensor([0, 0, 1])
print(torch.index_select(x, 0, index))
print(torch.index_select(x, 0, index).size())
print(torch.index_select(x, 1, index))
print(torch.index_select(x, 1, index).size())
print(torch.index_select(x, 2, index))
print(torch.index_select(x, 2, index).size())

input的张量形状为2×2×3,index为[0, 0, 1]的向量

分别从0、1、2三个维度来使用index_select()函数,并输出结果和形状,维度大于2就会报错因为input最大只有三个维度

输出:

tensor([[[1., 2., 3.],
         [4., 5., 6.]],
 
        [[9., 8., 7.],
         [6., 5., 4.]]])
torch.Size([2, 2, 3])
tensor([[[1., 2., 3.],
         [4., 5., 6.]],
 
        [[1., 2., 3.],
         [4., 5., 6.]],
 
        [[9., 8., 7.],
         [6., 5., 4.]]])
torch.Size([3, 2, 3])
tensor([[[1., 2., 3.],
         [1., 2., 3.],
         [4., 5., 6.]],
 
        [[9., 8., 7.],
         [9., 8., 7.],
         [6., 5., 4.]]])
torch.Size([2, 3, 3])
tensor([[[1., 1., 2.],
         [4., 4., 5.]],
 
        [[9., 9., 8.],
         [6., 6., 5.]]])
torch.Size([2, 2, 3])

对结果进行分析:

index是大小为3的向量,输入的张量形状为2×2×3

dim = 0时,输出的张量形状为3×2×3

dim = 1时,输出的张量形状为2×3×3

dim = 2时,输出的张量形状为2×2×3

注意输出张量维度的变化与index大小的关系,结合输出的张量与原始张量来分析index_select()函数的作用

到此这篇关于pytorch中index_select()的用法详解的文章就介绍到这了,更多相关pytorch index_select()内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木! 

Python 相关文章推荐
python中的代码编码格式转换问题
Jun 10 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
Python时间和字符串转换操作实例分析
Mar 16 Python
python读取并定位excel数据坐标系详解
Jun 26 Python
pycharm重命名文件的方法步骤
Jul 29 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
Python3.7 读取音频根据文件名生成脚本的代码
Apr 07 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
Nov 06 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 Python
python中24小时制转换为12小时制的方法
Jun 18 Python
Python之京东商品秒杀的实现示例
Jan 06 #Python
Python实现小黑屋游戏的完整实例
Jan 06 #Python
Jupyter Notebook 安装配置与使用详解
Jan 06 #Python
在Ubuntu中安装并配置Pycharm教程的实现方法
Jan 06 #Python
python requests库的使用
Jan 06 #Python
Python 实现进度条的六种方式
Jan 06 #Python
基于Python实现天天酷跑功能
Jan 06 #Python
You might like
PHP连接SQLServer2005 的问题解决方法
2010/07/19 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
jQuery toggle()设置CSS样式
2009/11/05 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
jQuery实现购物车多物品数量的加减+总价计算
2014/06/06 Javascript
jQuery中:header选择器用法实例
2014/12/29 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
Python自定义进程池实例分析【生产者、消费者模型问题】
2016/09/19 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
Python3将ipa包中的文件按大小排序
2020/04/17 Python
Python如何优雅删除字符列表空字符及None元素
2020/06/25 Python
python 实现批量图片识别并翻译
2020/11/02 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
四年的个人工作自我评价
2013/12/10 职场文书
开学典礼决心书
2014/03/11 职场文书
开学典礼主持词
2014/03/19 职场文书
促销活动总结模板
2014/07/01 职场文书
集体生日活动方案
2014/08/18 职场文书
效能风暴心得体会
2014/09/04 职场文书
2014年维修工作总结
2014/11/22 职场文书
2014年客服工作总结与计划
2014/12/09 职场文书
餐饮服务食品安全承诺书
2015/04/29 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书