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 相关文章推荐
kNN算法python实现和简单数字识别的方法
Nov 18 Python
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 Python
如何在python中使用selenium的示例
Dec 26 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
python3连接MySQL数据库实例详解
May 24 Python
django反向解析和正向解析的方式
Jun 05 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
python 定义n个变量方法 (变量声明自动化)
Nov 10 Python
Python Process多进程实现过程
Oct 22 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
PyCharm License Activation激活码失效问题的解决方法(图文详解)
Mar 12 Python
python Yaml、Json、Dict之间的转化
Oct 19 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和ACCESS写聊天室(七)
2006/10/09 PHP
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
2011/06/16 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
jquery插件tooltipv顶部淡入淡出效果使用示例
2013/12/05 Javascript
页面装载js及性能分析方法介绍
2014/03/21 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
JS选项卡动态替换banner图片路径的方法
2015/05/11 Javascript
浅谈jquery中的each方法$.each、this.each、$.fn.each
2016/06/23 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
2017/07/26 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
Mac下安装vue
2018/04/11 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
Python使用代理抓取网站图片(多线程)
2014/03/14 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
canvas绘制树形结构可视图形的实现
2020/04/03 HTML / CSS
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
幼儿园实习自我鉴定
2013/12/15 职场文书
给国外客户的邀请函
2014/01/30 职场文书
班子四风对照检查材料思想汇报
2014/09/29 职场文书
总经理岗位职责
2015/02/04 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
2015年保管员工作总结
2015/04/30 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
我的兄弟姐妹观后感
2015/06/15 职场文书