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局域网ip扫描示例分享
Apr 03 Python
Python fileinput模块使用实例
Jun 03 Python
python中字符串前面加r的作用
Jun 04 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python实现采用进度条实时显示处理进度的方法
Dec 19 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
Python实现图片转字符画的代码实例
Feb 22 Python
使用Python轻松完成垃圾分类(基于图像识别)
Jul 09 Python
python 变量初始化空列表的例子
Nov 28 Python
在python tkinter界面中添加按钮的实例
Mar 04 Python
python和php哪个容易学
Jun 19 Python
利用Python判断你的密码难度等级
Jun 02 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
PHP编程最快明白(第一讲 软件环境和准备工作)
2010/10/25 PHP
探讨php中header的用法详解
2013/06/07 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
2017/05/20 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
2018/05/12 PHP
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
2015/03/04 Javascript
JavaScript中使用concat()方法拼接字符串的教程
2015/06/06 Javascript
jquery插件之文字间歇自动向上滚动效果代码
2016/02/25 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
node中koa中间件机制详解
2017/08/22 Javascript
vue实现a标签点击高亮方法
2018/03/17 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
2018/03/21 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
vue使用nprogress加载路由进度条的方法
2020/06/04 Javascript
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
浅谈Python中的字符串
2020/06/10 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
征婚广告词
2014/03/17 职场文书
心理学专业求职信
2014/06/16 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python
MySQL中日期型单行函数代码详解
2021/06/21 MySQL
frg-100简单操作(设置)说明
2022/04/05 无线电