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 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
对于Python的Django框架部署的一些建议
Apr 09 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
matplotlib中legend位置调整解析
Dec 19 Python
Python元字符的用法实例解析
Jan 17 Python
Python3中列表list合并的四种方法
Apr 19 Python
Python 硬币兑换问题
Jul 29 Python
Django 响应数据response的返回源码详解
Aug 06 Python
Python数据分析模块pandas用法详解
Sep 04 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
python 批量下载bilibili视频的gui程序
Nov 20 Python
一篇文章弄懂Python关键字、标识符和变量
Jul 15 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的mysqli_select_db()函数讲解
2019/01/23 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
js 学习笔记(三)
2009/12/29 Javascript
js截取函数(indexOf,join等)
2010/09/01 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
Jquery Validate 正则表达式实用验证代码大全
2013/08/23 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
JQuery each()嵌套使用小结
2014/04/18 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
vue 中swiper的使用教程
2018/05/22 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
详解如何运行vue项目
2019/04/15 Javascript
python文件与目录操作实例详解
2016/02/22 Python
Python+OpenCV让电脑帮你玩微信跳一跳
2018/01/04 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
2019/10/18 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
python3注册全局热键的实现
2020/03/22 Python
如何查看Django ORM执行的SQL语句的实现
2020/04/20 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
总经理岗位职责描述
2014/02/08 职场文书
户外活动策划方案
2014/03/12 职场文书
团购业务员岗位职责
2014/03/15 职场文书
财务会计专业求职信
2014/06/09 职场文书
2016年质量月活动总结报告
2016/04/05 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
goland 清除所有的默认设置操作
2021/04/28 Golang
sql中mod()函数取余数的用法
2021/05/29 SQL Server
压缩Redis里的字符串大对象操作
2021/06/23 Redis
Pandas实现DataFrame的简单运算、统计与排序
2022/03/31 Python