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中的函数编程
Apr 13 Python
使用Python的Tornado框架实现一个简单的WebQQ机器人
Apr 24 Python
python使用wmi模块获取windows下硬盘信息的方法
May 15 Python
python实现批量下载新浪博客的方法
Jun 15 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
Jan 24 Python
python筛选出两个文件中重复行的方法
May 31 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
Python 正则表达式匹配字符串中的http链接方法
Dec 25 Python
django-rest-framework解析请求参数过程详解
Jul 18 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
python3中celery异步框架简单使用+守护进程方式启动
Jan 20 Python
在 Python 中利用 Pool 进行多线程
Apr 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
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
PHP操作数组相关函数
2011/02/03 PHP
PHP sprintf() 函数的应用(定义和用法)
2012/06/29 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
如何解决PHP获取不到SESSION信息之一般情况
2019/10/10 PHP
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
初学Javascript的一些总结
2008/11/03 Javascript
用户注册常用javascript代码
2009/08/29 Javascript
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
jQuery实现简单飞机大战
2020/07/05 jQuery
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
用python实现的可以拷贝或剪切一个文件列表中的所有文件
2009/04/30 Python
Python使用django获取用户IP地址的方法
2015/05/11 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
Python中函数参数匹配模型详解
2019/06/09 Python
澳大利亚连衣裙和女装在线:Esther
2017/11/11 全球购物
数控技校生自我鉴定
2014/03/02 职场文书
自我鉴定标准格式
2014/03/19 职场文书
童年读书笔记
2015/06/26 职场文书
Go语言中break label与goto label的区别
2021/04/28 Golang
4种非常实用的python内置数据结构
2021/04/28 Python
工厂无线对讲系统解决方案
2022/02/18 无线电