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中的函数用法入门教程
Sep 02 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
Python用Pillow(PIL)进行简单的图像操作方法
Jul 07 Python
使用TensorFlow实现SVM
Sep 06 Python
python后端接收前端回传的文件方法
Jan 02 Python
pytz格式化北京时间多出6分钟问题的解决方法
Jun 21 Python
Tensorflow实现神经网络拟合线性回归
Jul 19 Python
基于Python实现扑克牌面试题
Dec 11 Python
Python编译成.so文件进行加密后调用的实现
Dec 23 Python
基于spring boot 日志(logback)报错的解决方式
Feb 20 Python
零基础学python应该从哪里入手
Aug 11 Python
python实现简单猜单词游戏
Dec 24 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学习笔记之数组篇
2011/06/28 PHP
php数组声明、遍历、数组全局变量使用小结
2013/06/05 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
js实现带农历和八字等信息的日历特效
2016/05/16 Javascript
超链接怎么正确调用javascript函数
2016/05/23 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
详解vite+ts快速搭建vue3项目以及介绍相关特性
2021/02/25 Vue.js
[00:33]2016完美“圣”典风云人物:BurNIng宣传片
2016/12/10 DOTA
Python易忽视知识点小结
2015/05/25 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
python获取文件路径、文件名、后缀名的实例
2018/04/23 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
python 爬虫 实现增量去重和定时爬取实例
2020/02/28 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
2020/11/05 Python
Python爬虫爬取ts碎片视频+验证码登录功能
2021/02/22 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
晚会主持词开场白
2014/03/17 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
讲座开场白台词和结束语
2015/05/29 职场文书
导游词之广西漓江
2019/11/02 职场文书
【海涛教你打DOTA】剑圣第一人称视角解说
2022/04/01 DOTA
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript