Pytorch Batchnorm слой отличается от Keras Batchnorm - PullRequest
0 голосов
/ 12 февраля 2019

Я пытаюсь скопировать предварительно обученные веса BN из модели Pytorch в эквивалентную модель Keras, но продолжаю получать разные результаты.

Я читаю документацию Keras и Pytorch BN и думаю, что разница заключаетсяв способе, которым они вычисляют «среднее» и «var».

Pytorch:

Среднее значение и стандартное отклонение рассчитываются по размеру для мини-партий

source: Pytorch BatchNorm

Таким образом, они усредняются по выборкам.

Keras:

Ось: целое число,ось, которая должна быть нормализована (обычно это ось объектов).Например, после слоя Conv2D с data_format = "channel_first", установите axis = 1 в BatchNormalization.

source: Keras BatchNorm

и здесь они в среднемпо функциям (каналам)

Какой правильный путь?Как перевести веса BN между моделями?

...