对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实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
python使用arcpy.mapping模块批量出图
Mar 06 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
对Python3 goto 语句的使用方法详解
Feb 16 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 Python
Python3 合并二叉树的实现
Sep 30 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
Python 使用生成器代替线程的方法
Aug 04 Python
Django多数据库联用实现方法解析
Nov 12 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 Python
python区块链实现简版工作量证明
May 25 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面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
php对图像的各种处理函数代码小结
2013/07/08 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
JS应用之禁止抓屏、复制、打印
2008/02/21 Javascript
帮助避免错误的Javascript陷阱清单
2009/05/31 Javascript
添加JavaScript重载函数的辅助方法2
2010/07/04 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
jQuery 1.9使用$.support替代$.browser的使用方法
2014/05/27 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
详解在vue-test-utils中mock全局对象
2018/11/07 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
python 实现UTC时间加减的方法
2018/12/31 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Python 实现数据结构中的的栈队列
2019/05/16 Python
python数据预处理 :数据共线性处理详解
2020/02/24 Python
python 使用递归实现打印一个数字的每一位示例
2020/02/27 Python
python字符串判断密码强弱
2020/03/18 Python
如何基于Python代码实现高精度免费OCR工具
2020/06/18 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
学校综治宣传月活动总结
2014/07/02 职场文书
卫校毕业生自我鉴定
2014/09/28 职场文书
现役军人家属慰问信
2015/03/24 职场文书
2016春节慰问信范文
2015/03/25 职场文书