📜  CNN |填充介绍(1)

📅  最后修改于: 2023-12-03 15:30:02.070000             🧑  作者: Mango

CNN 填充介绍

卷积神经网络(CNN)是一种广泛应用于图像处理和视觉识别领域的神经网络架构。CNN通过多个卷积层和池化层来实现对图像特征的提取和降维,并通过全连接层将特征转化为目标分类。

CNN 的填充操作

在卷积层中,对于输入数据和卷积核的尺寸差异,需要通过填充(padding)来进行处理。填充操作是在输入数据的四周填充固定的值(通常是0)来扩大数据的大小,以便与卷积核逐一计算。填充的大小由填充的宽度和高度决定,通常用一个长度为2的向量来表示,如(2, 2)表示在宽和高两个方向分别填充2行/列。

在卷积操作中,填充有两种常用的方式:同通道填充全零填充

同通道填充

同通道填充是在输入数据的外围进行填充,与卷积核的通道数相同,如下图所示:

同通道填充示意图

此时输入数据的大小变为了$(H+2P, W+2P, C)$,卷积操作后输出数据的大小变为了$(H', W', C')$。

全零填充

全零填充是在输入数据的外围进行填充,填充的数值均为0,如下图所示:

全零填充示意图

此时输入数据的大小变为了$(H+2P, W+2P, C)$,卷积操作后输出数据的大小变为了$(H', W', C')$。

全零填充在CNN中的应用更为广泛,因为它能够保持特征图像素之间的维度不变,减少信息丢失。在输入数据大小和卷积核大小已知的情况下,填充大小可以通过下面的公式计算得到:

$$ P = \frac{(H+2P'-H')}{2} $$

其中,$H$表示输入数据的高度,$W$表示输入数据的宽度,$P'$表示填充的大小,$H'$表示输出数据的高度。