卷积操作中的 SAME padding 理解

 

公式:

 

个人理解:

如果卷积时,设置padding的属性值是 SAME ,则表示【输出层尺寸 = 输入层尺寸】,此时我们就可以根据上面的公式来反推出padding的值(也就是 P 的值)!

 

例子:

 

### 卷积操作中的Padding #### Padding的作用 在卷积神经网络中,当执行卷积运算时,如果不对输入图像边缘进行处理,则每次经过一层卷积后,输出特征图尺寸会逐渐减小。为了保持空间维度不变或控制其减少的速度,在输入张量周围添加额外的边界像素即为填充(Padding)。这种做法可以防止信息丢失并有助于保留原始输入的空间分辨率[^1]。 对于某些特定的应用场景来说,维持输入大小是非常重要的;而对于其他情况而言,适当缩小尺度可能有利于提取高层次抽象特征。因此,合理设置Padding参数能够帮助设计者更好地调整模型架构以适应不同需求。 #### Padding的具体用法 通常情况下,有两种主要类型的Padding方式: - **Valid Padding**:不使用任何填充,默认情况下只计算完整的滑动窗口区域内的卷积结果,这意味着输出尺寸将会小于等于输入尺寸。 - **Same Padding**:通过对输入两侧均匀增加一定数量的零来确保输出与输入具有相同的高度和宽度。具体数取决于所选滤波器大小以及步幅等因素[^2]。 下面给出一段Python代码示例展示了如何利用TensorFlow框架定义带有Padding选项的二维卷积层: ```python import tensorflow as tf # 定义一个简单的卷积层,采用'same'模式下的padding conv_layer = tf.keras.layers.Conv2D(filters=32, kernel_size=(3, 3), strides=(1, 1), padding='same', activation='relu') input_tensor = tf.random.normal([10, 28, 28, 1]) # 假设这是MNIST数据集的一个batch output_tensor = conv_layer(input_tensor) print("Input shape:", input_tensor.shape) print("Output shape with 'same' padding:", output_tensor.shape) ``` 这段程序创建了一个接受灰度图片作为输入的卷积层,并设置了`padding='same'`使得即使经历了卷积变换之后仍然能保持原有的高宽比例不变。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值