Замораживание весов в сети VGG19 для трансферного обучения в Caffe

Причина, по которой я задаю этот вопрос, связана с тем, что в VGG19 есть уровни пакетной нормализации (в отличие, например, от VGG16).

Я пытаюсь обучить сеть Faster-RCNN в Caffe. Я делаю это:

  • Загрузка предварительно обученной модели VGG19 ImageNet (файл веса + prototxt)
  • Удаление полностью связанных слоев из файла prototxt
  • Добавление слоев RPN и Fast-RCNN поверх сверточных слоев магистрали VGG19

Я ничего не менял относительно lr_mult значений сверточных слоев. В файле prototxt сверточные слои (например, conv1_1 и т. Д. Имеют ненулевые lr_mult значения, тогда как значения lr_mult слоев пакетной нормализации установлены на 0 (слои, названные как conv1_1/bn).

Означает ли тот факт, что слои пакетной нормализации заморожены, что сверточные слои также заморожены? Или мне следует установить lr_mult на 0 также в слоях с именем convX_X?


Обновление: после выполнения другого процесса обучения с обнулением lr_mult всех сверточных слоев время обучения резко сократилось, что означает, что ответ заключается в том, что значение lr_mult необходимо установить равным 0 также в convX_X слои.


person SomethingSomething    schedule 23.02.2019    source источник
comment
есть ли у вас файл с весами и протоколом для загрузки?   -  person Färid Alijani    schedule 13.04.2020


Ответы (1)


Чтобы правильно заморозить сверточные слои с помощью батчорма в Caffe, необходимо:

  • Для сверточных слоев: установите для параметра lr_mult значение 0
  • Для слоев батчнорма: установите lr_mult params на 0, установите use_global_stats на true:
layer {
  name: "bn1"
  type: "BatchNorm"
  bottom: "pool1"
  top: "bn1"
  batch_norm_param {
    use_global_stats: true
  }
  param {
    lr_mult: 0
  }
  param {
    lr_mult: 0
  }
  param {
    lr_mult: 0
  }
}

Означает ли тот факт, что слои пакетной нормализации заморожены, что сверточные слои также заморожены?

Конечно, нет. Однако, используя параметр propagate_down, вы можете добиться этого эффекта: Как предотвратить обратные вычисления в определенных слоях кафе.

person Dmytro Prylipko    schedule 24.02.2019