不同的学习率对蝙蝠侠的设定有影响。为什么?

时间:2017-05-29 12:08:12

标签: machine-learning neural-network deep-learning caffe

我正在使用BatchNorm图层。我知道设置use_global_stats的含义通常会为培训设置false,为测试/部署设置true。这是我在测试阶段的设置。

layer {
  name: "bnorm1"
  type: "BatchNorm"
  bottom: "conv1"
  top: "bnorm1"
  batch_norm_param {
    use_global_stats: true
  }
}
layer {
  name: "scale1"
  type: "Scale"
  bottom: "bnorm1"
  top: "bnorm1"
  bias_term: true
  scale_param {
    filler {
      value: 1
    }    
    bias_filler {
      value: 0.0
    }
  }
}

在solver.prototxt中,我使用了Adam方法。我发现在我的情况下发生了一个有趣的问题。如果我选择base_lr: 1e-3,那么当我在测试阶段设置use_global_stats: false时,我的表现会很好。但是,如果我选择base_lr: 1e-4,那么当我在测试阶段设置use_global_stats: true时,我的表现会很好。它证明了base_lr对batchnorm设置的影响(即使我使用了Adam方法)?你能说出任何理由吗?谢谢大家

1 个答案:

答案 0 :(得分:3)

AFAIK学习率不会直接影响index.php图层的学习参数。实际上,无论"BatchNorm"或解算器的lr_mult如何,caffe强制base_lr对此图层的所有内部参数都为零。 但是,根据您使用的type,您可能会遇到相邻图层会聚到不同点的情况,间接导致base_lr的行为不同。