最大池化的目的在于保留原特征的同时减少神经网络训练的参数,使得训练时间减少。相当于1080p的视频变为了720p

最大池化介绍

池化层最常用的是下采样,其中参数:

kernel_size:设置取最大值的窗口,类似于卷积层的卷积核,如果传入参数是一个int型,则生成一个正方形,边长与参数相同;若是两个int型的元组,则生成长方形。

stride:步径,与卷积层不同,默认值是kernel_size的大小

padding:和卷积层一样,用法类似于kernel_size。

dilation:控制窗口中元素步幅的参数,就是两两元素之间有间隔:

ceil_mode:设置ceil模式和floor模式。比如有一个数据:

kernel_size为3:

第一次匹配:

挑选出9个数中最大的值:2,然后先向右移动 kernel_size大小的距离:

此时因为数据没有凑足kernel_size的大小,便涉及取舍问题,ceil_mode为True,则保留,结果为3,若为False,则不保留。得到两种情况的最大池化结果:

ceil_mode = True:

ceil_mode = False:

图像相关尺寸公式

代码实现

上述验证

先用上面的例子进行验证。首先,初始化输入:

input = torch.tensor([[1, 2, 0, 3, 1],[0, 1, 2, 3, 1],[1, 2, 1, 0, 0],[5, 2, 3, 1, 1],[2, 1, 0, 1, 1]])

可知,input需要有四个参数,batch_size、channel、输入的高、输入的宽,则设置:

input = torch.reshape(input, [-1, 1, 5, 5])

创建一个神经网络:

class Model(nn.Module):def __init__(self):super(Model, self).__init__()self.maxpool1 = nn.MaxPool2d(kernel_size=3, ceil_mode=True)def forward(self, input):return self.maxpool1(input)

如果我们将数据放到神经网络训练,会报错,因为不支持输入"Long"型数据,则略修改:

input = torch.tensor([[1, 2, 0, 3, 1],[0, 1, 2, 3, 1],[1, 2, 1, 0, 0],[5, 2, 3, 1, 1],[2, 1, 0, 1, 1]], dtype=torch.float32)model = Model()
print(model(input))

输出结果:

tensor([[[[2., 3.],
          [5., 1.]]]])

与之前的值一致。

可视化表示

和卷积不同,池化输入为三维,输出仍然为三维,最后图片显示不用reshape。

采用CIFAR10数据集的照片:

#设置dataloader
dataset = torchvision.datasets.CIFAR10("./dataset", False, torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset, 64)

使用Tensorboard:

import torchvision
from torch import nn
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWritermodel = Model()
writer = SummaryWriter("logs")step = 0
for data in dataloader:imgs,targets = datawriter.add_images("inputs", imgs, step)outputs = model(imgs)writer.add_images("outpuxts", outputs, step)step = step+1writer.close()

观察图片:

图片变模糊,保留原图片的特征,让训练参数减少。

神经网络——最大池化相关推荐

  1. 【卷积神经网络--卷积/池化后特征图大小计算公式】

    [卷积神经网络–卷积/池化后特征图大小计算公式] 参考链接: 卷积神经网络系列之卷积/池化后特征图大小怎么计算?? torch中的Conv2d卷积的输入的Tensor张量是:[batch, chann ...

  2. 【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战

    1 深层卷积神经网络概述 1.1 深层卷积神经网络模型结构图 1.1.1 深层卷积神经网络的正向结构构成剖析 输入层,将每个像素作为一个特征节点输入网络. 卷积层:由多个滤波器组合而成. 池化层:将卷 ...

  3. 图神经网络的池化操作

    图神经网络有两个层面的任务:一个是图层面(graph-level),一个是节点(node-level)层面,图层面任务就是对整个图进行分类或者回归(比如分子分类),节点层面就是对图中的节点进行分类回归 ...

  4. 卷积神经网络卷积,池化,全连接--笔记01

    1.图像是由像素构成的,每个像素又是由颜色构成的 假如我们处理一张 1000×1000 像素的图片,我们就需要处理3百万个参数! 1000×1000×3=3,000,000 卷积神经网络 - CNN ...

  5. 卷积神经网络 卷积 池化 上下采样

    (参考链接https://www.zhihu.com/question/39022858) 如何理解卷积神经网络(CNN)中的卷积和池化?(参考链接https://www.zhihu.com/ques ...

  6. 深度学习与神经网络(七)——卷积神经网络之池化pooling 上采样upsample与降采样downsample(下采样)(subsample)(nn.MaxPool2d)

    池化层pooling与采样 upsample与downsample upsample(interpolating)是上采样,是图片的放大 unpool是上采样的一种 downsample(subsam ...

  7. python实现卷积_【python实现卷积神经网络】池化层实现

    激活函数的实现(sigmoid.softmax.tanh.relu.leakyrelu.elu.selu.softplus):https://www.cnblogs.com/xiximayou/p/1 ...

  8. 【FPGA教程案例56】深度学习案例3——基于FPGA的CNN卷积神经网络之池化层verilog实现

    FPGA教程目录 MATLAB教程目录 -------------------------------------------------------------------------------- ...

  9. 【数据挖掘】卷积神经网络 ( 池化 | 丢弃 | 批量规范化 | 卷积神经网络完整流程示例 | 卷积 | 池化 | 全连接 | 输出 | 卷积神经网络总结 )

    文章目录 I . 池化 II . 丢弃操作 III . 批量规范化 IV . 卷积神经网络 完整流程示例 ( 1 ) : 原始输入图 V . 卷积神经网络 完整流程示例 ( 2 ) : 卷积层 C1C ...

最新文章

  1. mysql约束日期_MySQL的约束、事务、字符串、日期、数学相关及其他补充
  2. 解决TextView排版混乱或者自动换行的问题
  3. 递归神经网络不可思议的有效性
  4. 老大难的 Java ClassLoader,到了该彻底理解它的时候了
  5. 面向对象编程 - 练习题
  6. 华为笔记本matebook13_华为MateBook 13_HUAWEI MateBook 13(i5 8265U/8GB/256GB/独显)_笔记本导购-中关村在线...
  7. 前端学习(1667):前端系列实战课程之拖拽
  8. Retrofit网络请求框架使用简析——Android网络请求框架(四)
  9. 第二阶段冲刺 每日站立会议 1/4
  10. .anonymous springsecurity需要登陆嘛_springSecurity之java配置篇
  11. AcWing 99. 激光炸弹 (二维前缀和)
  12. 计算机毕业设计最新选题汇总(持续更新)
  13. 2019-05-22 SperScan扫描器;SperScan附属工具
  14. 转载——巨详细的MD5加盐,大佬详解
  15. 【上汽零束SOA】云管端一体化SOA软件平台系列介绍之四:车云一体架构篇
  16. PDF删除页面免费的方法有什么?PDF怎么删除页面的技巧你不能错过
  17. 利用EXCEL进行数据爬虫
  18. Redis - NX与XX
  19. 计算机抖音链接,抖音怎么开始电脑直播
  20. android点歌系统代码

热门文章

  1. php 保留小数点两位不四舍五入 bcdiv()
  2. 【xgboost】XGBoost
  3. 360WiFi文件夹存储位置如何更改
  4. MySQL之二进制日志
  5. html5如何快速选择工具,PS抠图教程!教你PHOTOSHOP中5个快速选择工具
  6. 如何做好一个项目经理
  7. uniapp Modal自定义弹窗
  8. 数字化转型是新瓶装旧酒吗?
  9. push进队列的C2075错误
  10. oracle已经创建表空间不存在,oracle表空间的创建、删除、查看、表空间不存在、及修改默认表空间详解...