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条件和循环的使用方法
Nov 01 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
python 字符串转列表 list 出现\ufeff的解决方法
Jun 22 Python
python机器人行走步数问题的解决
Jan 29 Python
python对excel文档去重及求和的实例
Apr 18 Python
python抖音表白程序源代码
Apr 07 Python
python-tkinter之按钮的使用,开关方法
Jun 11 Python
pyqt5 键盘监听按下enter 就登陆的实例
Jun 25 Python
python 矢量数据转栅格数据代码实例
Sep 30 Python
使用Matplotlib 绘制精美的数学图形例子
Dec 13 Python
python中strip(),lstrip(),rstrip()函数的使用讲解
Nov 17 Python
Python使用pandas导入csv文件内容的示例代码
Dec 24 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
js控制web打印(局部打印)方法整理
2013/05/29 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
JavaScript中逗号运算符介绍及使用示例
2015/03/13 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
详解JavaScript实现设计模式中的适配器模式的方法
2016/05/18 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
AngularJs expression详解及简单示例
2016/09/01 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
解决angular2 获取到的数据无法实时更新的问题
2018/08/31 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
在element-ui的el-tree组件中用render函数生成el-button的实例代码
2018/11/05 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
Javascript实现html转pdf高清版(提高分辨率)
2020/02/19 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
[01:00] DOTA2英雄背景故事第五期之重力引力法则谜团
2020/07/16 DOTA
利用python获得时间的实例说明
2013/03/25 Python
Python ftp上传文件
2016/02/13 Python
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
Python jieba库分词模式实例用法
2021/01/13 Python
linux面试题参考答案(8)
2015/08/11 面试题
软件设计的目标是什么
2016/12/04 面试题
如何整合JQuery和Prototype
2014/01/31 面试题
网络事业创业计划书范文
2014/01/09 职场文书
爱护公共设施的标语
2014/06/24 职场文书
内科护士节演讲稿
2014/09/11 职场文书
运动会报道稿300字
2014/10/02 职场文书
校长个人总结
2015/03/03 职场文书
年度考核登记表个人总结
2015/03/06 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL