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使用fork实现守护进程的方法
Nov 16 Python
python实现定时提取实时日志程序
Jun 22 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
Jul 04 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
PyQt5响应回车事件的方法
Jun 25 Python
python 通过手机号识别出对应的微信性别(实例代码)
Dec 22 Python
Python关于反射的实例代码分享
Feb 20 Python
Django认证系统user对象实现过程解析
Mar 02 Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 Python
Python list和str互转的实现示例
Nov 16 Python
详解Python如何批量采集京东商品数据流程
Jan 22 Python
Python+Pillow+Pytesseract实现验证码识别
May 11 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
twig模板常用语句实例小结
2016/02/04 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
javascript中利用数组实现的循环队列代码
2010/01/24 Javascript
jQuery与ExtJS之选择实例分析
2010/08/19 Javascript
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
JS阻止用户多次提交示例代码
2014/03/26 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
js中iframe调用父页面的方法
2014/10/30 Javascript
JavaScript设计模式之抽象工厂模式介绍
2014/12/28 Javascript
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
jquery中checkbox使用方法简单实例演示
2015/11/24 Javascript
微信小程序 video组件详解
2016/10/25 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
js处理包含中文的字符串实例
2017/10/11 Javascript
JavaScript实现QQ列表展开收缩扩展功能
2017/10/30 Javascript
Vue项目中如何引入icon图标
2018/03/28 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
微信小程序聊天功能的示例代码
2020/01/13 Javascript
微信小程序开发数据缓存基础知识辨析及运用实例详解
2020/11/06 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python微信库:itchat的用法详解
2017/08/14 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
python导入坐标点的具体操作
2019/05/10 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
办公室前台的岗位职责
2013/12/20 职场文书
公司活动总结怎么写
2014/06/25 职场文书
护士节慰问信
2015/02/15 职场文书
导游词之苏州盘门景区
2019/11/12 职场文书
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
python 标准库原理与用法详解之os.path篇
2021/10/24 Python