2016-10-08 7 views
1

Я видел следующий код под флагом caffe. Весь код пытается написать caffe train_val.prototxt и solver.prototxt.слой caffe batchnorm влияет на base_lr?

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

Почему базовая скорость обучения отличается?

ответ

0

Вы можете попробовать, если this paper помогает. Говорят, что если вы не используете нормализацию, вам нужно тренироваться «более тщательно», что означает использование более низкой скорости обучения.

Скольжения первых страниц, я мог себе представить, это работает так:

Для некоторых нелинейность, есть «хороший диапазон входного значения», и партия норма приносит значения в этот диапазон. Высокие входные значения являются плохими и приводят к насыщению (небольшой уклон в функции и «исчезающие градиенты»).

Итак, если вы не нормализуете, вам нужно сделать более мелкие шаги - более низкую скорость обучения - чтобы избежать «прыжка» в массы, которые приводят к высоким значениям в сети. А также будьте осторожны, как вы инициализируете вес. Я предполагаю, что если вы используете ReLus, это не проблема. Но, пожалуйста, поправьте меня, если у кого-то другого был опыт с ReLus.

 Смежные вопросы

  • Нет связанных вопросов^_^