🤔 Можно ли тьюнить только batch norm?
Да, можно тюнить только Batch Normalization (BatchNorm) слои в нейронной сети, заморозив остальные параметры.
🟠Предобученная модель адаптируется к новым данным
фиксируются веса сверточных или полносвязных слоев, но обновляются параметры BatchNorm, чтобы скорректировать статистики (mean, variance) под новый датасет.
🟠Финетюнинг при небольшом размере данных
если данных мало, обновление только BatchNorm слоев может помочь адаптироваться без переобучения всей модели.
🟠Ускорение обучения
тюнинг только BatchNorm слоев уменьшает число обновляемых параметров, снижая вычислительные затраты.
🚩Как это работает?
BatchNorm содержит обучаемые параметры:
γ (scale) и β (shift) – которые позволяют нормализованному выходу масштабироваться и смещаться.
running_mean и running_variance – обновляются во время тренировки, даже если веса других слоев зафиксированы.
При тюнинге только BatchNorm
Градиенты всех других слоев замораживаются (requires_grad = False).
BatchNorm слои остаются обучаемыми (requires_grad = True).
running_mean и running_variance обновляются в режиме train(), но не в eval().
🚩В каких случаях это плохо?
Если данные очень сильно отличаются от тех, на которых обучалась исходная модель, тюнинг только BatchNorm может быть недостаточным.
При маленьких батчах статистики BatchNorm могут становиться нестабильными.
Ставь 👍 и забирай 📚 Базу знаний
Да, можно тюнить только Batch Normalization (BatchNorm) слои в нейронной сети, заморозив остальные параметры.
🟠Предобученная модель адаптируется к новым данным
фиксируются веса сверточных или полносвязных слоев, но обновляются параметры BatchNorm, чтобы скорректировать статистики (mean, variance) под новый датасет.
🟠Финетюнинг при небольшом размере данных
если данных мало, обновление только BatchNorm слоев может помочь адаптироваться без переобучения всей модели.
🟠Ускорение обучения
тюнинг только BatchNorm слоев уменьшает число обновляемых параметров, снижая вычислительные затраты.
🚩Как это работает?
BatchNorm содержит обучаемые параметры:
γ (scale) и β (shift) – которые позволяют нормализованному выходу масштабироваться и смещаться.
running_mean и running_variance – обновляются во время тренировки, даже если веса других слоев зафиксированы.
При тюнинге только BatchNorm
Градиенты всех других слоев замораживаются (requires_grad = False).
BatchNorm слои остаются обучаемыми (requires_grad = True).
running_mean и running_variance обновляются в режиме train(), но не в eval().
🚩В каких случаях это плохо?
Если данные очень сильно отличаются от тех, на которых обучалась исходная модель, тюнинг только BatchNorm может быть недостаточным.
При маленьких батчах статистики BatchNorm могут становиться нестабильными.
Ставь 👍 и забирай 📚 Базу знаний