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 17 Python
在Python中使用poplib模块收取邮件的教程
Apr 29 Python
详谈Python基础之内置函数和递归
Jun 21 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
python 以16进制打印输出的方法
Jul 09 Python
Django处理多用户类型的方法介绍
May 18 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
如何基于Python实现自动扫雷
Jan 06 Python
Python2与Python3的区别详解
Feb 09 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
May 26 Python
python urllib库的使用详解
Apr 13 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实现俄罗斯乘法实例
2015/03/07 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
Laravel 不同生产环境服务器的判断实践
2019/10/15 PHP
jquery入门—访问DOM对象方法
2013/01/07 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
jquery实现仿Flash的横向滑动菜单效果代码
2015/09/17 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
vue2实现移动端上传、预览、压缩图片解决拍照旋转问题
2017/04/13 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
2017/07/12 jQuery
js实现可以点击收缩或张开的悬浮窗
2017/09/18 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
react native 获取地理位置的方法示例
2018/08/28 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
vue 微信分享回调iOS和安卓回调出现错误的解决
2020/09/07 Javascript
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
python实现获取Ip归属地等信息
2016/08/27 Python
Python中函数eval和ast.literal_eval的区别详解
2017/08/10 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
浅谈Python中的bs4基础
2018/10/21 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
python 标准差计算的实现(std)
2019/07/29 Python
如何使用Python调整图像大小
2020/09/26 Python
Pycharm 设置默认解释器路径和编码格式的操作
2021/02/05 Python
项目副经理岗位职责
2013/12/30 职场文书
财务部副经理岗位职责
2014/03/14 职场文书
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
《叶问2》观后感
2015/06/15 职场文书
SQL Server基本使用和简单的CRUD操作
2021/04/05 SQL Server
python tqdm用法及实例详解
2021/06/16 Python
mysql通过group by分组取最大时间对应数据的两种有效方法
2022/09/23 MySQL