对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读取html中指定元素生成excle文件示例
Apr 03 Python
Python中实现从目录中过滤出指定文件类型的文件
Feb 02 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
Jan 31 Python
python下10个简单实例代码
Nov 15 Python
使用python3构建文件传输的方法
Feb 13 Python
Python 的AES加密与解密实现
Jul 09 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
Window10下python3.7 安装与卸载教程图解
Sep 30 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
TensorFlow keras卷积神经网络 添加L2正则化方式
May 22 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 Python
Python绘制散乱的点构成的图的方法
Apr 21 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+DBM的同学录程序(2)
2006/10/09 PHP
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
javascript fullscreen全屏实现代码
2009/04/09 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
2014/04/04 Javascript
使用变量动态设置js的属性名
2014/10/19 Javascript
javascript变量声明实例分析
2015/04/25 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
简单谈谈Javascript中类型的判断
2015/10/19 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
JS 验证密码 不能为空,必须含有数字、字母、特殊字符,长度在8-12位
2017/06/21 Javascript
微信小程序事件流原理解析
2019/11/27 Javascript
react 原生实现头像滚动播放的示例
2020/04/21 Javascript
如何搭建一个完整的Vue3.0+ts的项目步骤
2020/10/18 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
python logging 日志轮转文件不删除问题的解决方法
2016/08/02 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
python绘制双柱形图代码实例
2017/12/14 Python
python如何统计序列中元素
2020/07/31 Python
Python中作用域的深入讲解
2018/12/10 Python
Python序列化与反序列化pickle用法实例
2019/11/11 Python
PyCharm中如何直接使用Anaconda已安装的库
2020/05/28 Python
python安装mysql的依赖包mysql-python操作
2021/01/01 Python
Notino罗马尼亚网站:购买香水和化妆品
2019/07/20 全球购物
机电一体化专业应届生求职信
2013/11/27 职场文书
2014年大学生就业规划书
2014/04/04 职场文书
领导干部作风建设工作总结
2014/10/23 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
为什么mysql字段要使用NOT NULL
2021/05/13 MySQL
使用PostGIS完成两点间的河流轨迹及流经长度的计算(推荐)
2022/01/18 PostgreSQL