29、卷积 - 参数 padding 的作用

本文探讨了卷积过程中Padding的重要性,它用于扩大输入图像尺寸,防止边缘信息损失。Padding确保了在网络中保留图像边缘信息,并在保持输出尺寸与输入相同、处理小物体特征以及提供网络设计灵活性方面发挥关键作用。

在卷积过程中,Padding(填充)是一个关键的概念,它对于保留输入信息和有效地处理边缘信息至关重要。

1、Padding是什么?

Padding 指的是在输入图像的周围添加额外的像素值,用来以扩大输入图像的尺寸,这些额外填充的像素值通常设置为零,卷积操作在这个填充后的输入图像上进行。

如上图,从一个俯视图的角度来看待一个卷积运算的过程,最上面的是卷积核,在下面蓝色的图像上滑动扫描的过程。

在蓝色图像周边,又填充了一圈白色的像素,这就是 padding。在实际的卷积计算中,padding 不一定只填充一圈,可能两圈也可能三圈,而且上下左右四个方向的 padding 数量有可能不一样,比如左侧填充一行,右侧填充两行,这根据网络结构来决定。

2、为什么需要Padding?

padding 虽然比较简单好理解,但他的作用却不小。我总结了下,padding 的作用主要是以下的作用。

防止图像边缘信息损失。在进行卷积操作时,卷积核一般是一个小窗口,在输入图像上滑动。

如果没有 padding,每次卷积核移动计算后,都会导致卷积的输出尺寸变小,最终可能使得输入图像的边缘信息丢失,而填充了

### 卷积神经网络 Padding 参数详解 Padding卷积操作中的一个重要参数,在卷积层中用于控制输入数据边缘处理的方式。当应用卷积核进行滑动窗口计算时,如果不对边界做特殊处理,则每次卷积运算都会使特征图尺寸减小。为了保持输出特征图大小不变或按需调整其尺寸,引入了 padding 技术。 #### 1. Padding作用 - **保留图像信息**:适当设置 padding 可以防止因多次卷积导致的有效感受野缩小过快,从而丢失靠近边界的有用信息[^1]。 - **维持空间维度一致**:通过增加零填充(或其他方式),可以使经过多层卷积后的输出仍然具有相同的宽度和高度,这有助于简化模型设计并减少形状不匹配带来的麻烦。 #### 2. 常见的 Padding 类型 主要有两种类型的 padding- **Valid (无填充)**:即不做任何额外填充,默认情况下会使得输出尺寸小于输入尺寸; - **Same (全填充)**:会在输入两侧自动添加适量的0值像素点,确保最终得到的结果与原始输入有相同的空间分辨率;具体来说,`same`模式下,padding的数量取决于滤波器大小以及步幅(stride),目的是让每一轮卷积之后都能大致保持原有的宽高比例。 ```python import tensorflow as tf # 定义一个简单的二维卷积层实例 conv_layer = tf.keras.layers.Conv2D(filters=32, kernel_size=(3, 3), strides=(1, 1), padding='same') input_tensor = tf.random.normal([1, 28, 28, 1]) # 输入张量 shape=[batch_size, height, width, channels] output_tensor = conv_layer(input_tensor) print(f'Input Shape: {input_tensor.shape}') print(f'Output Shape with Same Padding: {output_tensor.shape}') # 输出应保持原输入的高度和宽度 ``` 上述代码展示了如何利用 TensorFlow 库创建带有 `same` padding 设置的卷积层,并验证了这种配置能够有效地维护输入数据的空间结构特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董董灿是个攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值