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 02 Python
Python+Wordpress制作小说站
Apr 14 Python
python中日志logging模块的性能及多进程详解
Jul 18 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
pytorch 转换矩阵的维数位置方法
Dec 08 Python
Python装饰器语法糖
Jan 02 Python
Django缓存系统实现过程解析
Aug 02 Python
Python中常用的高阶函数实例详解
Feb 21 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
python读取mat文件生成h5文件的实现
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
yii插入数据库防并发的简单代码
2017/05/27 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
浅谈javascript中的作用域
2012/04/07 Javascript
Jquery Uploadify上传带进度条的简单实例
2014/02/12 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
一段非常简单的js判断浏览器的内核
2014/08/17 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
jQuery Dom元素操作技巧
2018/02/04 jQuery
JavaScript中import用法总结
2019/01/20 Javascript
react配置antd按需加载的使用
2019/02/11 Javascript
jQuery实现的卷帘门滑入滑出效果【案例】
2019/02/18 jQuery
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
微信小程序实现拨打电话功能的示例代码
2020/06/28 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
python修改文件内容的3种方法详解
2019/11/15 Python
python运用pygame库实现双人弹球小游戏
2019/11/25 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
iostream与iostream.h的区别
2015/01/16 面试题
情人节活动策划方案
2014/02/27 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
汽车广告策划方案
2014/05/31 职场文书
办护照工作证明
2014/10/01 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
优秀党员个人总结
2015/02/14 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python
Golang 结构体数据集合
2022/04/22 Golang