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模块学习 re 正则表达式
May 19 Python
python定时执行指定函数的方法
May 27 Python
Python使用defaultdict读取文件各列的方法
May 11 Python
Python编程之序列操作实例详解
Jul 22 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
python实现图片识别汽车功能
Nov 30 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
利用rest framework搭建Django API过程解析
Aug 31 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
Python处理mysql特殊字符的问题
Mar 02 Python
python 实现超级玛丽游戏
Nov 25 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
jQuery操作 input type=checkbox的实现代码
2012/06/14 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
jQuery实现获取table中鼠标click点击位置行号与列号的方法
2017/10/09 jQuery
Vue中render方法的使用详解
2018/01/26 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
python之消除前缀重命名的方法
2018/10/21 Python
python cumsum函数的具体使用
2019/07/29 Python
python中open函数的基本用法示例
2019/09/07 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
企业治理工作自我评价
2013/09/26 职场文书
师范院校学生自荐信范文
2013/12/27 职场文书
财务主管的岗位职责
2013/12/30 职场文书
党校培训思想汇报
2013/12/30 职场文书
职工运动会邀请函
2014/02/02 职场文书
租赁意向书范本
2014/04/01 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
社区党建工作方案
2014/06/10 职场文书
电子商务实训报告总结
2014/11/05 职场文书
实习员工转正的评语汇总,以备不时之需
2019/12/17 职场文书