对Pytorch中Tensor的各种池化操作解析


Posted in Python onJanuary 03, 2020

AdaptiveAvgPool1d(N)

对一个C*H*W的三维输入Tensor, 池化输出为C*H*N, 即按照H轴逐行对W轴平均池化

>>> a = torch.ones(2,3,4)
>>> a[0,1,2] = 0
>>>> a
tensor([[[1., 1., 1., 1.],
     [1., 1., 0., 1.],
     [1., 1., 1., 1.]],

    [[1., 1., 1., 1.],
     [1., 1., 1., 1.],
     [1., 1., 1., 1.]]])
     
>>> nn.AdaptiveAvgPool1d(5)(a)
tensor([[[1.0000, 1.0000, 1.0000, 1.0000, 1.0000],
     [1.0000, 1.0000, 0.5000, 0.5000, 1.0000],
     [1.0000, 1.0000, 1.0000, 1.0000, 1.0000]],

    [[1.0000, 1.0000, 1.0000, 1.0000, 1.0000],
     [1.0000, 1.0000, 1.0000, 1.0000, 1.0000],
     [1.0000, 1.0000, 1.0000, 1.0000, 1.0000]]])
     
>>> nn.AdaptiveAvgPool1d(1)(a)
tensor([[[1.0000],
     [0.7500],
     [1.0000]],

    [[1.0000],
     [1.0000],
     [1.0000]]])

AdaptiveAvgPool2d((M,N))

对一个B*C*H*W的四维输入Tensor, 池化输出为B*C*M*N, 即按照C轴逐通道对H*W平面平均池化

>>> a = torch.ones(2,2,3,4)
>>> a[:,:,:,1] = 0
>>> a
tensor([[[[1., 0., 1., 1.],
     [1., 0., 1., 1.],
     [1., 0., 1., 1.]],

     [[1., 0., 1., 1.],
     [1., 0., 1., 1.],
     [1., 0., 1., 1.]]],


    [[[1., 0., 1., 1.],
     [1., 0., 1., 1.],
     [1., 0., 1., 1.]],

     [[1., 0., 1., 1.],
     [1., 0., 1., 1.],
     [1., 0., 1., 1.]]]])
     
>>> nn.AdaptiveAvgPool2d((1,2))(a)
tensor([[[[0.5000, 1.0000]],
     [[0.5000, 1.0000]]],
     
    [[[0.5000, 1.0000]],
     [[0.5000, 1.0000]]]])
     
>>> nn.AdaptiveAvgPool2d(1)(a)
tensor([[[[0.7500]],
     [[0.7500]]],

    [[[0.7500]],
     [[0.7500]]]])

AdaptiveAvgPool3d((M,N,K))

对一个B*C*D*H*W的五维输入Tensor, 池化输出为B*C*M*N*K, 即按照C轴逐通道对D*H*W平面平均池化

>>> a = torch.ones(1,2,2,3,4)
>>> a[0,0,:,:,0:2] = 0
>>> a
tensor([[[[[0., 0., 1., 1.],
      [0., 0., 1., 1.],
      [0., 0., 1., 1.]],
      
     [[0., 0., 1., 1.],
      [0., 0., 1., 1.],
      [0., 0., 1., 1.]]],

     [[[1., 1., 1., 1.],
      [1., 1., 1., 1.],
      [1., 1., 1., 1.]],

     [[1., 1., 1., 1.],
      [1., 1., 1., 1.],
      [1., 1., 1., 1.]]]]])
     
>>> nn.AdaptiveAvgPool3d((1,1,2))(a)
tensor([[[[[0., 1.]]],

     [[[1., 1.]]]]])
     
>>> nn.AdaptiveAvgPool3d(1)(a)
tensor([[[[[0.5000]]],

     [[[1.0000]]]]])

以上这篇对Pytorch中Tensor的各种池化操作解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python读取Android permission文件
Nov 01 Python
python使用urllib2模块获取gravatar头像实例
Dec 18 Python
python与php实现分割文件代码
Mar 06 Python
Windows下安装python MySQLdb遇到的问题及解决方法
Mar 16 Python
Python编程实现数学运算求一元二次方程的实根算法示例
Apr 02 Python
Python 文件操作的详解及实例
Sep 18 Python
python3去掉string中的标点符号方法
Jan 22 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
Oct 15 Python
requests在python中发送请求的实例讲解
Feb 17 Python
在pycharm中无法import所安装的库解决方案
May 31 Python
Python基础之高级变量类型实例详解
Jan 03 #Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 #Python
pytorch中的卷积和池化计算方式详解
Jan 03 #Python
Python While循环语句实例演示及原理解析
Jan 03 #Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 #Python
Python综合应用名片管理系统案例详解
Jan 03 #Python
Python tkinter常用操作代码实例
Jan 03 #Python
You might like
浅谈php和.net的区别
2014/09/28 PHP
PHP+Apache+Mysql环境搭建教程
2016/08/01 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Laravel中unique和exists验证规则的优化详解
2018/01/28 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
两个SUBMIT按钮,如何区分处理
2006/08/22 Javascript
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
解决css和js的{}与smarty定界符冲突问题的两种方法
2013/09/10 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
详解jQuery插件开发方式
2016/11/22 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
ES6知识点整理之数组解构和字符串解构的应用示例
2019/04/17 Javascript
vue实现设置载入动画和初始化页面动画效果
2019/10/28 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
Python 获取当前所在目录的方法详解
2017/08/02 Python
对pandas replace函数的使用方法小结
2018/05/18 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
Python 把序列转换为元组的函数tuple方法
2019/06/27 Python
flask框架蓝图和子域名配置详解
2020/01/25 Python
详解px单位html5响应式方案
2018/03/08 HTML / CSS
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
爷爷追悼会答谢词
2014/01/24 职场文书
伊琍体标语
2014/06/25 职场文书
春游踏青活动方案
2014/08/14 职场文书
springboot @ConfigurationProperties和@PropertySource的区别
2021/06/11 Java/Android
Python中递归以及递归遍历目录详解
2021/10/24 Python