对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获取DLL和EXE文件版本号的方法
Mar 10 Python
利用Python绘制数据的瀑布图的教程
Apr 07 Python
Python下Fabric的简单部署方法
Jul 14 Python
python实现按行切分文本文件的方法
Apr 18 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
django框架模板语言使用方法详解
Jul 18 Python
python实现按首字母分类查找功能
Oct 31 Python
PyTorch使用cpu加载模型运算方式
Jan 13 Python
python使用Geany编辑器配置方法
Feb 21 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
May 20 Python
深入了解Python 变量作用域
Jul 24 Python
教你怎么用python selenium实现自动化测试
May 27 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和js如何通过json互相传递数据相关问题探讨
2013/02/26 PHP
PHP常用的排序和查找算法
2015/08/06 PHP
深入浅析用PHP实现MVC
2016/03/02 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
PHP7常量数组用法分析
2016/09/26 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
微信小程序中使用javascript 回调函数
2017/05/11 Javascript
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python采集腾讯新闻实例
2014/07/10 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
2015/06/26 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
Python语法分析之字符串格式化
2019/06/13 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
2019/08/12 Python
Python xlwt模块使用代码实例
2020/06/10 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
中学生在校期间的自我评价分享
2013/11/13 职场文书
业务员自荐信范文
2014/04/20 职场文书
平安工地建设方案
2014/05/06 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
机器人瓦力观后感
2015/06/12 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript