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中的choice()方法使用详解
May 15 Python
浅析Python编写函数装饰器
Mar 18 Python
python模块之paramiko实例代码
Jan 31 Python
pandas DataFrame数据转为list的方法
Apr 11 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
基于Python中求和函数sum的用法详解
Jun 28 Python
python3.x 将byte转成字符串的方法
Jul 17 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
Python中最好用的命令行参数解析工具(argparse)
Aug 23 Python
Python迭代器iterator生成器generator使用解析
Oct 24 Python
python使用numpy实现直方图反向投影示例
Jan 17 Python
解决python绘图使用subplots出现标题重叠的问题
Apr 30 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
php 不同编码下的字符串长度区分
2009/09/26 PHP
PHP模拟asp中response类实现方法
2015/08/08 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
python进程与线程小结实例分析
2018/11/11 PHP
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
jquery tools系列 expose 学习
2009/09/06 Javascript
JQuery SELECT单选模拟jQuery.select.js
2009/11/12 Javascript
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
js console.log打印对象时属性缺失的解决方法
2019/05/23 Javascript
详解vue-cli3多页应用改造
2019/06/04 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
Python的迭代器和生成器
2015/07/29 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
Python模拟登录的多种方法(四种)
2018/06/01 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
详解python读取和输出到txt
2019/03/29 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式
2021/01/24 Python
什么是触发器(trigger)? 触发器有什么作用?
2013/09/18 面试题
微信营销策划方案
2014/02/24 职场文书
初中班级口号
2014/06/09 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
初三英语教学计划
2015/01/23 职场文书
借钱欠条怎么写
2015/07/03 职场文书
Golang连接并操作MySQL
2022/04/14 MySQL