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获取远程图片大小和尺寸的方法
Mar 26 Python
Python正则表达式实现截取成对括号的方法
Jan 06 Python
python实现图片筛选程序
Oct 24 Python
Python模块的加载讲解
Jan 15 Python
用Python实现BP神经网络(附代码)
Jul 10 Python
使用TensorFlow实现简单线性回归模型
Jul 19 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
Mar 09 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
Python中的嵌套循环详情
Mar 23 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判断json格式是否正确的实现代码
2017/09/20 PHP
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
jQuery AnythingSlider滑动效果插件
2010/02/07 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
图解Sublime Text3使用技巧
2015/12/21 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
Nodejs中解决cluster模块的多进程如何共享数据问题
2016/11/10 NodeJs
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
浅析JavaScript的几种Math函数,random(),ceil(),round(),floor()
2016/12/22 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
vue路由组件按需加载的几种方法小结
2018/07/12 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
jQuery创建折叠式菜单
2019/06/15 jQuery
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
react使用CSS实现react动画功能示例
2020/05/18 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
python代码检查工具pylint 让你的python更规范
2012/09/05 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
python实现复制文件到指定目录
2019/10/16 Python
Python网络爬虫信息提取mooc代码实例
2020/03/06 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
python Pexpect模块的使用
2020/12/25 Python
Python 实现劳拉游戏的实例代码(四连环、重力四子棋)
2021/03/03 Python
英国在线花园中心:You Garden
2018/06/03 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
.net笔试题
2014/03/03 面试题
办公室主任岗位职责
2013/11/08 职场文书
中学优秀班主任事迹材料
2014/05/01 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
js 数组 fill() 填充方法
2021/11/02 Javascript
python+opencv实现目标跟踪过程
2022/06/21 Python