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中input()与raw_input()的区别分析
Feb 27 Python
Python更新数据库脚本两种方法及对比介绍
Jul 27 Python
Python 2.7中文显示与处理方法
Jul 16 Python
python在回调函数中获取返回值的方法
Feb 22 Python
python利用多种方式来统计词频(单词个数)
May 27 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
Dec 04 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
Jul 02 Python
如何在windows下安装配置python工具Ulipad
Oct 27 Python
详解Go语言运用广度优先搜索走迷宫
Jun 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
上海无线电三厂简史修改版
2021/03/01 无线电
php下删除一篇文章生成的多个静态页面
2010/08/08 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
php简单创建zip压缩文件的方法
2016/04/30 PHP
使用php自动备份数据库表的实现方法
2017/07/28 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
8个超实用的jQuery功能代码分享
2015/01/08 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
js实现图片上传并正常显示
2015/12/19 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
JavaScript函数重载操作实例浅析
2020/05/02 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
Python机器学习之决策树算法
2017/12/22 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
python3实现猜数字游戏
2020/12/07 Python
PHP统计代码行数的小代码
2019/09/19 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
关于逃课的检讨书
2014/01/23 职场文书
毕业生自荐书
2014/02/03 职场文书
对孩子的寄语
2014/04/09 职场文书
音乐教师求职信范文
2015/03/20 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
win10滚动条自动往上跑怎么办?win10滚动条自动往上跑的解决方法
2022/08/05 数码科技