pytorch AvgPool2d函数使用详解


Posted in Python onJanuary 03, 2020

我就废话不多说了,直接上代码吧!

import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.autograd import Variable
import numpy as np
 
 
 
input = Variable(torch.Tensor([[[1, 3, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7]], [[1, 3, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7]]]))
print("input shape",input.shape)
c = F.avg_pool1d(input, kernel_size=3, stride=2)
print(c)
print("c shape:",c.shape)
 
# m = nn.AvgPool2d(3, stride=2)
m = nn.AvgPool2d((2, 2), stride=(2, 2))
input = Variable(torch.randn(20, 18, 50, 32)) # bach是20,图片size是50*31,chanel是18(通道是18,也就是每张图有18个fature map)
input = np.array([[[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]],
          [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]],
         [[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]],
          [[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]]]) #size2*2*4*4
print("input shape:",input.shape)
input = Variable(torch.FloatTensor(input))
output = m(input)
print(output)
print("output shape:",output.shape)#(2,2,2,2)

输出:

input shape torch.Size([2, 2, 7])
tensor([[[ 2.3333, 4.0000, 6.0000],
     [ 2.0000, 4.0000, 6.0000]],
 
    [[ 2.3333, 4.0000, 6.0000],
     [ 2.0000, 4.0000, 6.0000]]])
c shape: torch.Size([2, 2, 3])
input shape: (2, 2, 4, 4)
tensor([[[[ 1.5000, 3.5000],
     [ 1.5000, 3.5000]],
 
     [[ 1.5000, 3.5000],
     [ 1.5000, 3.5000]]],
 
 
    [[[ 1.5000, 3.5000],
     [ 1.5000, 3.5000]],
 
     [[ 1.5000, 3.5000],
     [ 1.5000, 3.5000]]]])
output shape: torch.Size([2, 2, 2, 2])

pytorch中的F.avg_pool1d()平均池化操作作用于一维,input的维度是三维比如[2,2,7]。F.avg_pool1d()中核size是3,步长是2表示每三个数取平均,每隔两个数取一次.比如[1,3,3,4,5,6,7]安照3个数取均值,两步取一次,那么结果就是[ 2.3333 ,4 ,6 ],也就是核是一维的,也只作用于一个维度。按照池化操作计算公式input size为[2,2,7],kernel size为3,步长为2,则输出维度计算(7-3)/2+1=3所以输出维度是[2,2,3],这与输出结果是一致的。

pytorch中的F.avg_pool2d(),input是维度是4维如[2,2,4,4],表示这里批量数是2也就是两张图像,这里应该是有通道(feature map)数量是2,图像是size是4*4的.核size是(2,2)步长是(2,2)表示被核覆盖的数取平均,横向纵向的步长都是2.那么核是二维的,所以取均值时也是覆盖二维取的。输出中第一个1.5的计算是:1+2+1+2/4=1.5.表示第一张图像左上角的四个像素点的均值。按照池化操作计算公式input size为[2,2,4,4],kernel size为2*2,步长为2,则输出维度计算(4-2)/2+1=2所以输出维度是[2,2,2,2],这与输出结果是一致的。

以上这篇pytorch AvgPool2d函数使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python正则表达式实现截取成对括号的方法
Jan 06 Python
python opencv 直方图反向投影的方法
Feb 24 Python
Django 实现下载文件功能的示例
Mar 06 Python
Python绘制3D图形
May 03 Python
python调用百度REST API实现语音识别
Aug 30 Python
关于numpy.where()函数 返回值的解释
Dec 06 Python
Python使用pymysql模块操作mysql增删改查实例分析
Dec 19 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 18 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 Python
pytorch 权重weight 与 梯度grad 可视化操作
Jun 05 Python
Python采集爬取京东商品信息和评论并存入MySQL
Apr 12 Python
python turtle绘图
May 04 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 #Python
Python基础之函数原理与应用实例详解
Jan 03 #Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 #Python
Python基础之高级变量类型实例详解
Jan 03 #Python
关于Pytorch MaxUnpool2d中size操作方式
Jan 03 #Python
pytorch中的卷积和池化计算方式详解
Jan 03 #Python
Python While循环语句实例演示及原理解析
Jan 03 #Python
You might like
php实现json编码的方法
2015/07/30 PHP
JS跨域总结
2012/08/30 Javascript
js对列表中第一个值处理与jsp页面对列表中第一个值处理的区别详解
2013/11/05 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
详谈jQuery中的this和$(this)
2014/11/13 Javascript
node.js中的fs.lstat方法使用说明
2014/12/16 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
jquery实现左右滑动菜单效果代码
2015/08/27 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
微信小程序云开发之模拟后台增删改查
2019/05/16 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
uni-app 支持多端第三方地图定位的方法
2020/01/03 Javascript
python多线程操作实例
2014/11/21 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python放大图片和画方格实现算法
2018/03/30 Python
详解Python with/as使用说明
2018/12/13 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
深入了解Django中间件及其方法
2019/07/26 Python
PHP统计代码行数的小代码
2019/09/19 Python
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
印刷技术专业自荐信
2014/09/18 职场文书
信仰纪录片观后感
2015/06/08 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
如何使用Python对NetCDF数据做空间相关分析
2021/04/21 Python
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
python编程学习使用管道Pipe编写优化代码
2021/11/20 Python
一文搞懂Java中的注解和反射
2022/06/21 Java/Android