卷积神经网络(CNN)-池化层-2
池化操作包括在特征图的每个通道上滑动二维滤波器,并总结位于滤波器覆盖的区域内的特征。对于维度为n的特征图nhx nwx nc,则池化层后获得的输出维度为
(nh - f + 1) / s x (nw - f + 1)/s x nc
其中:
->nh-特征图高度
->nw-特征图宽度
->nc-特征图中的通道数
->f-过滤器尺寸
->s-步幅长度
常见的 CNN 模型架构是将多个卷积层和池化层一个接一个地堆叠起来。
为什么要使用池化层(Pooling Layers)?
- 池化层用于减小特征图的维度。因此,它减少了要学习的参数数量和在网络中执行的计算量。
- 池化层汇总了卷积层生成的特征图区域中存在的特征。因此,对汇总的特征执行进一步的操作,而不是对卷积层生成的精确定位的特征执行。这使得模型对输入图像中特征位置的变化更加稳健。
池化层的类型:
最大池化
Max pooling 是一种池化操作,它从过滤器覆盖的特征图区域选择最大元素。因此,max-pooling层后的输出将是一个特征图,其中包含前一个特征图的最突出特征。
这可以通过在keras中使用MaxPooling2D层来实现,如下所示:
代码 #1:使用keras执行Max池化
import numpy as np from keras.models import |