Я использую Stochasti c Weight Averaging (SWA) со слоями Batch Normalization в Tensorflow 2.2. Для Batch Norm я использую tf.keras.layers.BatchNormalization
. Для SWA я использую свой собственный код для усреднения весов (я написал свой код до появления tfa.optimizers.SWA
). Я читал в нескольких источниках, что при использовании пакетной нормы и SWA мы должны запустить прямой проход, чтобы сделать определенные данные (среднее и стандартное отклонение весов активации и / или значений импульса?) Доступными для слоев пакетной нормы. Я не понимаю, несмотря на то, что много читал, что именно нужно делать и как. В частности:
- Когда должен выполняться проход вперед / прогнозирования? В конце каждого мини-пакета, в конце каждой эпохи, в конце всего обучения?
- Когда выполняется прямой проход, как средние и стандартные значения промежуточного значения становятся доступными для слоев норм пакета?
- Этот процесс волшебным образом выполняется классом
tfa.optimizers.SWA
?