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脚本实现代码行数统计代码分享
Mar 10 Python
python使用pil生成图片验证码的方法
May 08 Python
python中文件变化监控示例(watchdog)
Oct 16 Python
python MySQLdb使用教程详解
Mar 20 Python
Python3中列表list合并的四种方法
Apr 19 Python
pip指定python位置安装软件包的方法
Jul 12 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
Feb 16 Python
jupyter notebook 重装教程
Apr 16 Python
快速了解Python开发环境Spyder
Jun 29 Python
浅谈tensorflow 中的图片读取和裁剪方式
Jun 30 Python
Node.js 和 Python之间该选择哪个?
Aug 05 Python
PyCharm上安装Package的实现(以pandas为例)
Sep 18 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
文件上传类
2006/10/09 PHP
ThinkPHP3.2.1图片验证码实现方法
2016/08/19 PHP
PHP 中使用explode()函数切割字符串为数组的示例
2017/05/06 PHP
asp.net和php的区别点总结
2019/10/10 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
js在IE与firefox的差异集锦
2014/11/11 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
2016/10/30 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
nodejs实现范围请求的实现代码
2018/10/12 NodeJs
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
复习Python中的字符串知识点
2015/04/14 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
python实现俄罗斯方块
2018/06/26 Python
Python全排列操作实例分析
2018/07/24 Python
Django关于admin的使用技巧和知识点
2020/02/10 Python
python爬虫---requests库的用法详解
2020/09/28 Python
Opencv python 图片生成视频的方法示例
2020/11/18 Python
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
多媒体专业自我鉴定
2014/02/28 职场文书
少儿节目主持串词
2014/04/02 职场文书
个人委托书怎么写
2014/04/04 职场文书
2014年审计人员工作总结
2014/12/19 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
2016年教师师德师风心得体会
2016/01/12 职场文书
PostgreSQL数据库创建并使用视图以及子查询
2022/04/11 PostgreSQL