浅谈Pytorch中的torch.gather函数的含义


Posted in Python onAugust 18, 2019

pytorch中的gather函数

pytorch比tensorflow更加编程友好,所以准备用pytorch试着做最近要做的一些实验。

立个flag开始学习pytorch,新开一个分类整理学习pytorch中的一些踩到的泥坑。

浅谈Pytorch中的torch.gather函数的含义

今天刚开始接触,读了一下documentation,写一个一开始每太搞懂的函数gather

b = torch.Tensor([[1,2,3],[4,5,6]])
print b
index_1 = torch.LongTensor([[0,1],[2,0]])
index_2 = torch.LongTensor([[0,1,1],[0,0,0]])
print torch.gather(b, dim=1, index=index_1)
print torch.gather(b, dim=0, index=index_2)

观察它的输出结果:

1 2 3
 4 5 6
[torch.FloatTensor of size 2x3]


 1 2
 6 4
[torch.FloatTensor of size 2x2]


 1 5 6
 1 2 3
[torch.FloatTensor of size 2x3]

这里是官方文档的解释

torch.gather(input, dim, index, out=None) → Tensor

 Gathers values along an axis specified by dim.

 For a 3-D tensor the output is specified by:

 out[i][j][k] = input[index[i][j][k]][j][k] # dim=0
 out[i][j][k] = input[i][index[i][j][k]][k] # dim=1
 out[i][j][k] = input[i][j][index[i][j][k]] # dim=2

 Parameters: 

  input (Tensor) ? The source tensor
  dim (int) ? The axis along which to index
  index (LongTensor) ? The indices of elements to gather
  out (Tensor, optional) ? Destination tensor

 Example:

 >>> t = torch.Tensor([[1,2],[3,4]])
 >>> torch.gather(t, 1, torch.LongTensor([[0,0],[1,0]]))
  1 1
  4 3
 [torch.FloatTensor of size 2x2]

可以看出,gather的作用是这样的,index实际上是索引,具体是行还是列的索引要看前面dim 的指定,比如对于我们的栗子,【1,2,3;4,5,6,】,指定dim=1,也就是横向,那么索引就是列号。index的大小就是输出的大小,所以比如index是【1,0;0,0】,那么看index第一行,1列指的是2, 0列指的是1,同理,第二行为4,4 。这样就输入为【2,1;4,4】,参考这样的解释看上面的输出结果,即可理解gather的含义。

gather在one-hot为输出的多分类问题中,可以把最大值坐标作为index传进去,然后提取到每一行的正确预测结果,这也是gather可能的一个作用。

以上这篇浅谈Pytorch中的torch.gather函数的含义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python模块简介之有序字典(OrderedDict)
Dec 01 Python
Python 备份程序代码实现
Mar 06 Python
python之PyMongo使用总结
May 26 Python
itchat和matplotlib的结合使用爬取微信信息的实例
Aug 25 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
Python3 批量扫描端口的例子
Jul 25 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
PyTorch 导数应用的使用教程
Aug 31 Python
Python列表的深复制和浅复制示例详解
Feb 12 Python
PyTorch中Tensor的维度变换实现
Aug 18 #Python
PyTorch中Tensor的拼接与拆分的实现
Aug 18 #Python
详解PyTorch中Tensor的高阶操作
Aug 18 #Python
浅析PyTorch中nn.Linear的使用
Aug 18 #Python
Pytorch实现GoogLeNet的方法
Aug 18 #Python
PyTorch之图像和Tensor填充的实例
Aug 18 #Python
Pytorch Tensor的索引与切片例子
Aug 18 #Python
You might like
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
php 使用ActiveMQ发送消息,与处理消息操作示例
2020/02/23 PHP
Opacity.js
2007/01/22 Javascript
js 发个判断字符串是否为符合标准的函数
2009/04/27 Javascript
使用时间戳解决ie缓存的问题
2014/08/20 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
Node.js的特点详解
2017/02/03 Javascript
javascript编写简易计算器
2017/05/06 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
Vue 中使用 CSS Modules优雅方法
2018/04/09 Javascript
用Electron写个带界面的nodejs爬虫的实现方法
2019/01/29 NodeJs
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
微信小程序缓存支持二次开发封装实现解析
2019/12/16 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python深入学习之内存管理
2014/08/31 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
Python Dict找出value大于某值或key大于某值的所有项方式
2020/06/05 Python
Python实现EM算法实例代码
2020/10/04 Python
Python descriptor(描述符)的实现
2020/11/15 Python
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
学校司机岗位职责
2013/11/14 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
首次购房证明
2015/06/19 职场文书
新员工入职感言范文!
2019/07/04 职场文书
python中pycryto实现数据加密
2022/04/29 Python