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的爬虫程序编写框架Scrapy入门学习教程
Jul 02 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python中easy_install 和 pip 的安装及使用
Jun 05 Python
使用python编写udp协议的ping程序方法
Apr 22 Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
python+mysql实现教务管理系统
Feb 20 Python
pytorch多进程加速及代码优化方法
Aug 19 Python
django自带serializers序列化返回指定字段的方法
Aug 21 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
Oct 30 Python
python自定义函数def的应用详解
Jun 03 Python
Python中免验证跳转到内容页的实例代码
Oct 23 Python
python更新数据库中某个字段的数据(方法详解)
Nov 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
PHP新手上路(五)
2006/10/09 PHP
删除html标签得到纯文本可处理嵌套的标签
2014/04/28 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
PHP实现关键字搜索后描红功能示例
2019/07/03 PHP
电子商务网站上的常用的js放大镜效果
2011/12/08 Javascript
js实现页面转发功能示例代码
2013/08/05 Javascript
JavaScript插件化开发教程(六)
2015/02/01 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
jQuery实现单击弹出Div层窗口效果(可关闭可拖动)
2015/09/19 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
JavaScript jQuery 中定义数组与操作及jquery数组操作
2015/12/18 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
jQuery实现底部浮动窗口效果
2016/09/07 Javascript
js仿微博动态栏功能
2017/02/22 Javascript
vue.js实现只弹一次弹框
2018/01/29 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
python连接mysql调用存储过程示例
2014/03/05 Python
python中Flask框架简单入门实例
2015/03/21 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
Python 如何提高元组的可读性
2019/08/26 Python
Python数学形态学实例分析
2019/09/06 Python
Python 使用threading+Queue实现线程池示例
2019/12/21 Python
python numpy实现多次循环读取文件 等间隔过滤数据示例
2020/03/14 Python
HTML5表格_动力节点Java学院整理
2017/07/11 HTML / CSS
video结合canvas实现视频在线截图功能
2018/06/25 HTML / CSS
会计专业毕业生自我评价
2013/09/25 职场文书
外贸会计专业自荐信
2014/06/22 职场文书
追悼词范文大全
2015/06/23 职场文书
2016年五四青年节校园广播稿
2015/12/17 职场文书
Python基础之字符串格式化详解
2021/04/21 Python
Go 自定义package包设置与导入操作
2021/05/06 Golang
Oracle使用别名的好处
2022/04/19 Oracle