深度学习:池化(Pooling)

池化(Pooling)操作在卷积神经网络中用于降低特征图的尺寸,减少计算量,并提供某种程度的平移不变性。我们以最常用的最大池化(Max Pooling)为例,来解释池化操作之后的特征图大小计算。
假设有以下参数:
  • 输入特征图大小: ( H i n × W i n ) ( H{in} \times W{in} ) (Hin×Win)
  • 池化窗口大小: ( K × K ) ( K \times K ) (K×K)
  • 步幅:( S )
  • 填充:( P )
池化之后的输出特征图大小可以用以下公式计算:

H o u t = ⌊ H i n − K + 2 P S ⌋ + 1 H{out} = \left\lfloor \frac{H{in} - K + 2P}{S} \right\rfloor + 1 Hout=⌊SHin−K+2P⌋+1
W o u t = ⌊ W i n − K + 2 P S ⌋ + 1 W{out} = \left\lfloor \frac{W{in} - K + 2P}{S} \right\rfloor + 1 Wout=⌊SWin−K+2P⌋+1

示例

假设输入特征图的大小是 ( 4 × 4 ) (4 \times 4) (4×4),池化窗口大小是 (2 \\times 2),步幅是 (2),无填充(即 (P = 0))。

参数:

  • ( H i n = 4 ) ( H_{in} = 4 ) (Hin=4)
  • ( W i n = 4 ) ( W_{in} = 4 ) (Win=4)
  • ( K = 2 )
  • ( S = 2 )
  • ( P = 0 )
计算:

H o u t = ⌊ 4 − 2 + 0 2 ⌋ + 1 = ⌊ 2 2 ⌋ + 1 = 1 + 1 = 2 H{out} = \left\lfloor \frac{4 - 2 + 0}{2} \right\rfloor + 1 = \left\lfloor \frac{2}{2} \right\rfloor + 1 = 1 + 1 = 2 Hout=⌊24−2+0⌋+1=⌊22⌋+1=1+1=2
W o u t = ⌊ 4 − 2 + 0 2 ⌋ + 1 = ⌊ 2 2 ⌋ + 1 = 1 + 1 = 2 W{out} = \left\lfloor \frac{4 - 2 + 0}{2} \right\rfloor + 1 = \left\lfloor \frac{2}{2} \right\rfloor + 1 = 1 + 1 = 2 Wout=⌊24−2+0⌋+1=⌊22⌋+1=1+1=2

因此,池化之后的输出特征图大小是 ( 2 × 2 ) (2 \times 2) (2×2)。

具体示例

假设输入特征图如下:

1 3 2 4 5 6 7 8 9 2 4 6 3 1 0 5 \] \\begin{bmatrix} 1 \& 3 \& 2 \& 4 \\\\ 5 \& 6 \& 7 \& 8 \\\\ 9 \& 2 \& 4 \& 6 \\\\ 3 \& 1 \& 0 \& 5 \\end{bmatrix} 1593362127404865 ###### 最大池化操作的结果将是: \[ \[ 6 8 9 6 \] \] \[ \\begin{bmatrix} 6 \& 8 \\\\ 9 \& 6 \\end{bmatrix} \] \[\[6986\]

步骤:
  • 取左上角的 ( 2 × 2 ) (2 \times 2) (2×2) 区域 ( [ 1 3 5 6 ] ) (\begin {bmatrix} 1 & 3 \\ 5 & 6 \end{bmatrix}) ([1536]),最大值是6。
  • 移动窗口至右上角 ( [ 2 4 7 8 ] ) (\begin{bmatrix} 2 &4 \\ 7 & 8 \end{bmatrix}) ([2748]),最大值是8。
  • 移动窗口至左下角 ( [ 9 2 3 1 ] ) (\begin{bmatrix} 9 &2 \\ 3 & 1 \end{bmatrix}) ([9321]),最大值是9。
  • 移动窗口至右下角 ( [ 4 6 0 5 ] ) (\begin{bmatrix} 4 & 6 \\ 0 & 5 \end{bmatrix}) ([4065]),最大值是6。
最终得到输出特征图:

6 8 9 6 \] \\begin{bmatrix} 6 \&8 \\\\ 9 \& 6 \\end{bmatrix} \[6986

通过以上计算和示例,明确了池化操作之后的特征图大小计算方法和具体操作过程。

相关推荐
小马爱打代码4 分钟前
Spring AI:Docker 安装向量数据库 - Redis Stack
数据库·人工智能·spring
IT_陈寒6 分钟前
【SpringBoot 3.2实战】10倍性能优化的5个冷门技巧,90%开发者都不知道!
前端·人工智能·后端
小霖家的混江龙8 分钟前
Token 到底怎么来的? 一文读懂大模型分词的核心逻辑, 看完秒懂!
人工智能·python·llm
dragoooon3411 分钟前
【OpenCV 图像处理 Python版】图像处理的基本操作
人工智能·opencv·计算机视觉
tangjunjun-owen11 分钟前
OpenCV在Visual Studio中的完整配置教程
人工智能·opencv·visual studio
搜移IT科技12 分钟前
加密货币市场的二元性 XBIT Wallet 硬件钱包风险缓解多元化策略
大数据·人工智能
余俊晖12 分钟前
大模型网页数据清洗工具思路:MinerU-HTML
人工智能·html·数据生成
说私域16 分钟前
基于定制开发开源AI智能名片S2B2C商城小程序的数据质量管控研究
人工智能·小程序
张较瘦_17 分钟前
[论文阅读] AI | 告别“被动救火”:POLARIS让系统学会“主动预判+自我进化”
论文阅读·人工智能
nwsuaf_huasir19 分钟前
深度学习2-pyTorch学习-第一个神经网络
pytorch·深度学习·学习