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的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
Python素数检测的方法
May 11 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
Jul 10 Python
Python调用C# Com dll组件实战教程
Oct 12 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 Python
python入门之井字棋小游戏
Mar 05 Python
Python基于模块Paramiko实现SSHv2协议
Apr 28 Python
如何在mac版pycharm选择python版本
Jul 21 Python
Python非单向递归函数如何返回全部结果
Dec 18 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
Jan 27 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/21 PHP
php和vue配合使用技巧和方法
2019/05/09 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
php7 参数、整形及字符串处理机制修改实例分析
2020/05/25 PHP
javascript 命名规则 变量命名规则
2010/02/25 Javascript
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
jQuery 删除或是清空某个HTML元素示例
2014/08/04 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
使用jQuery实现返回顶部
2015/01/26 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
jQuery使用serialize()表单序列化时出现中文乱码问题的解决办法
2016/07/27 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
AngularJS+Bootstrap3多级导航菜单的实现代码
2017/08/16 Javascript
JavaScript定义及输出螺旋矩阵的方法详解
2017/12/01 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
使用Python处理Excel表格的简单方法
2018/06/07 Python
Python定时任务sched模块用法示例
2018/07/16 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
Python logging模块原理解析及应用
2020/08/13 Python
python Cartopy的基础使用详解
2020/11/01 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
意大利买卖二手奢侈品网站:LAMPOO
2020/06/03 全球购物
机电一体化求职信
2014/03/10 职场文书
小学班主任培训方案
2014/06/04 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
MyBatis在注解上使用动态SQL方式(@select使用if)
2022/07/07 Java/Android