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 相关文章推荐
使用IronPython把Python脚本集成到.NET程序中的教程
Mar 31 Python
python统计文本文件内单词数量的方法
May 30 Python
python使用xslt提取网页数据的方法
Feb 23 Python
windows下添加Python环境变量的方法汇总
May 14 Python
Python中is和==的区别详解
Nov 15 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
详解Python3迁移接口变化采坑记
Oct 11 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
Apr 21 Python
Python Dict找出value大于某值或key大于某值的所有项方式
Jun 05 Python
keras 解决加载lstm+crf模型出错的问题
Jun 10 Python
Python爬虫实例——爬取美团美食数据
Jul 15 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
zend framework多模块多布局配置
2011/02/26 PHP
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
ThinkPHP中Widget扩展的两种写法及调用方法详解
2017/05/04 PHP
CMSPRESS 10行代码搞定 PHP无限级分类2
2018/03/30 PHP
accesskey 提交
2006/06/26 Javascript
Javascript 的addEventListener()及attachEvent()区别分析
2009/05/21 Javascript
表格 隔行换色升级版
2009/11/07 Javascript
基于jquery的超简单上下翻
2010/04/20 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
jQuery中ajax的load()与post()方法实例详解
2016/01/05 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
VUE 动态组件的应用案例分析
2019/12/02 Javascript
Python 使用with上下文实现计时功能
2018/03/09 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
Python中format()格式输出全解
2019/04/12 Python
Django中URL的参数传递的实现
2019/08/04 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
pandas分批读取大数据集教程
2020/06/06 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
Travelstart沙特阿拉伯:廉价航班、豪华酒店和实惠的汽车租赁优惠
2019/04/06 全球购物
行政人员岗位职责
2013/12/08 职场文书
工作表扬信范文
2015/01/17 职场文书
辞职信怎么写
2015/02/27 职场文书
肖申克救赎观后感
2015/06/02 职场文书
学习经验交流会总结
2015/11/02 职场文书
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python
Nginx防盗链与服务优化配置的全过程
2022/01/18 Servers
python+pytest接口自动化之token关联登录的实现
2022/04/06 Python