对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文档生成工具pydoc使用介绍
Jun 02 Python
Python实现处理管道的方法
Jun 04 Python
教你用Type Hint提高Python程序开发效率
Aug 08 Python
python微信跳一跳游戏辅助代码解析
Jan 29 Python
解决Python requests库编码 socks5代理的问题
May 07 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 Python
tensorflow实现从.ckpt文件中读取任意变量
May 26 Python
浅谈Python 参数与变量
Jun 20 Python
python 爬取免费简历模板网站的示例
Sep 27 Python
Python通过getattr函数获取对象的属性值
Oct 16 Python
Pycharm 如何一键加引号的方法步骤
Feb 05 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计数器的实现代码
2013/06/08 PHP
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
Laravel 修改默认日志文件名称和位置的例子
2019/10/17 PHP
PHP队列场景以及实现代码实例详解
2021/02/26 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
用jquery ajax获取网站Alexa排名的代码
2009/12/12 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
js获取form的方法
2015/05/06 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
2018/09/25 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
全面解析Vue中的$nextTick
2020/12/24 Vue.js
[02:02]特效爆炸!DOTA2珍宝之瓶待你开启
2018/08/21 DOTA
老生常谈python之鸭子类和多态
2017/06/13 Python
Pandas 数据处理,数据清洗详解
2018/07/10 Python
python机器人运动范围问题的解答
2019/04/29 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
python 实现让字典的value 成为列表
2019/12/16 Python
python代码实现将列表中重复元素之间的内容全部滤除
2020/05/22 Python
在Pytorch中使用Mask R-CNN进行实例分割操作
2020/06/24 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
英国日常交易网站:Wowcher
2018/09/04 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
高中生毕业学习总结的自我评价
2013/11/14 职场文书
历史专业毕业生的自我鉴定
2013/11/15 职场文书
致跳远运动员加油稿
2014/02/11 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
导游词之河北白洋淀
2020/01/15 职场文书
python数据库批量插入数据的实现(executemany的使用)
2021/04/30 Python
详解TypeScript的基础类型
2022/02/18 Javascript