关于SSD中Conv4_3的L2 Norm处理

本文深入探讨了SSD目标检测模型中L2Norm的使用,解释了其在conv4_3特征层的必要性和作用。通过对比L2Regularization和BatchNorm,阐述了L2Norm的独特之处,并提供了四种不同实现方式的代码示例。

最近研究SSD代码时,发现在Conv4_3特征层后,进行了L2 Norm 的处理,最后研究了一下。

首先介绍一下L2 Norm,其实很简单,就是把所有值平方后加起来,求根以后当分母,然后每个数当分子,进行求解, L2 Regularization and Batch Norm 详细介绍了他的不同
但是简而言之,L2 Norm 是在channel上进行求平均, 而batch_norm 是对=[batch,higth,width]进行求平均
在这里插入图片描述
在这里插入图片描述

至于为什么要用L2Normal,原作者说conv4_3和其他特种层不一样,有这不同的scale

That was discovered in my other paper (ParseNet) that conv4_3 has different scale from other layers. That is why I add L2 normalization for conv4_3 only.

然后看了不同版本的SSD代码,主要有以下几种实现方法:



# 1、tensorflow,新建一个layer
# 自定义layer层,会有正向传播,和反向传播
class L2Normalization(Layer):
    """
     在深度神经网络中,偶尔会出现多个量纲不同的向量拼接在一起的情况,
     此时就可以使用L2归一化统一拼接后的向量的量纲,使得网络能够快速收敛。
    """

    def __init__(self, gamma_init=20, **kwargs):
        self.axis = 3
        self.gamma_init = gamma_init
        super(L2Normalization, self).__init__(**kwargs)

    def build(self, input_shape):
        self.input_spec =</
03-19
### 关于Conv4_3的技术概念与实现细节 在神经网络架构中,“conv4_3”通常指的是卷积神经网络(CNN)中的第四个卷积层的第三个子层[^1]。这种命名方式常见于深层网络结构中,用于区分不同阶段和层次的卷积操作。 #### 卷积层的作用 卷积层的主要功能是从输入数据中提取特征。具体来说,在图像处理领域,早期的卷积层倾向于捕获低级特征(如边缘、纹理),而较深的卷积层则能够捕捉更复杂的模式和组合特征[^2]。 对于“conv4_3”,它位于网络的中间偏后位置,因此其主要作用可能是识别更高阶的空间关系或者特定目标的部分结构。这些部分可能包括但不限于物体轮廓、局部形状或其他语义信息。 #### 实现细节 以下是基于Keras框架的一个简单示例来展示如何定义类似的卷积层: ```python from keras.models import Model from keras.layers import Input, Conv2D input_tensor = Input(shape=(224, 224, 3)) x = Conv2D(64, kernel_size=3, activation=&#39;relu&#39;, padding=&#39;same&#39;, name="conv1_1")(input_tensor) x = Conv2D(64, kernel_size=3, activation=&#39;relu&#39;, padding=&#39;same&#39;, name="conv1_2")(x) # 假设这是第四组卷积的第一到第三层 x = Conv2D(512, kernel_size=3, activation=&#39;relu&#39;, padding=&#39;same&#39;, name="conv4_1")(x) x = Conv2D(512, kernel_size=3, activation=&#39;relu&#39;, padding=&#39;same&#39;, name="conv4_2")(x) x = Conv2D(512, kernel_size=3, activation=&#39;relu&#39;, padding=&#39;same&#39;, name="conv4_3")(x) model = Model(inputs=input_tensor, outputs=x) ``` 上述代码片段展示了如何构建一个具有多个卷积层的模型,并特别标注了`conv4_3`这一层的名字及其参数设置[^3]。 #### 特征图尺寸变化规律 随着层数加深,为了减少计算量并增加感受野大小,一般会通过步幅大于一或加入池化层的方式降低空间维度。例如VGG系列网络就采用了连续的小型滤波器叠加以及周期性的最大池化策略。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值