caffe batchnorm layer影响base_lr?

时间:2016-10-08 16:13:49

标签: neural-network normalization caffe

我在caffe框架下看到了以下代码。整个代码正在尝试编写caffe train_val.prototxtsolver.prototxt

# Use different initial learning rate.
if use_batchnorm:
    base_lr = 0.0004
else:
    base_lr = 0.00004

为什么基础学习率不同?

1 个答案:

答案 0 :(得分:0)

如果this paper有帮助,您可以尝试。 他们说,如果你不使用标准化,你需要“更仔细地”训练,这意味着使用较低的学习率。

略读第一页,我可以想象它的工作原理如下:

对于某些非线性,存在“良好的输入值范围”,批量规范将值带入该范围。高输入值很差并导致饱和(功能中的斜率很小,“消失的梯度”)。

因此,如果你没有规范化,你需要做出更小的步骤 - 更低的学习率 - 以避免“跳跃”到导致网内高值的权重。如何初始化权重也要更加小心。我想如果你使用ReLus,那不是一个问题。但如果其他人与ReLus有过不同的经历,请纠正我。