Да, он работает для меньшего размера, он будет работать даже с наименьшим возможным размером, установленным вами.
Хитрость в размере Баха также добавляет эффект регуляризации, а не только в пакетную норму.
Я покажу вам несколько фото:
Мы в одном масштабе отслеживаем потерю холостяка. Левая сторона - это модуль без уровня нормы партии (черный), с правой стороны - слой нормы партии.
Обратите внимание, что эффект регуляризации очевиден даже для bs=10
.
Когда мы устанавливаем bs=64
, регуляризация потери партии становится очень очевидной. Обратите внимание, что y
шкала всегда [0, 4]
.
Мой экзамен проходил исключительно по nn.BatchNorm1d(10, affine=False)
без обучаемых параметров gamma
и beta
, т.е. w
и b
.
Вот почему, когда у вас небольшой размер пакета, имеет смысл использовать слой BatchNorm.