Caffe中Batch Normalizatio操作

caffe 中为什么bn层要和scale层一起使用

这个问题首先你要理解batchnormal是做什么的。它其实做了两件事。
[1] 对输入进行归一化,xnorm=x−μσ,其中, μ 和 σ是计算的均值和方差  —— 对应 Caffe BatchNorm 层
[2] 归一化后进行缩放和平移,得到输出 y=γ⋅xnorm+β                  —— 对应 Caffe Scale 层
Scale层设置bias_term=True,即对应于 β

Caffe 的 BN(BatchNorm ) 层共有三个参数参数:均值、方差和滑动系数,BN层结构如下:

layer {
    bottom: "data"
    top: "data"
    name: "bn_data"
    type: "BatchNorm"
    batch_norm_param {
        use_global_stats: false
    include:
    {
        phase:TRAIN
    }
}

layer {
    bottom: "data"
    top: "data"
    name: "bn_data"
    type: "BatchNorm"
    batch_norm_param {
        use_global_stats: true
    include:
    {
        phase:TEST
    }
}

  • use_global_stats:如果为真,则使用保存的均值和方差,否则采用滑动平均计算新的均值和方差。该参数缺省的时候,如果是测试阶段则等价为真,如果是训练阶段则等价为假。
  • moving_average_fraction:滑动平均的衰减系数,默认为0.999
  • eps:分母附加值,防止除以方差时出现除0操作,默认为1e-5(不同框架采用的默认值不一样)

 

   

  
参考链接:https://blog.csdn.net/zziahgf/article/details/78843350

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值