Я пытаюсь скопировать предварительно обученные веса BN из модели Pytorch в эквивалентную модель Keras, но продолжаю получать разные результаты.
Я читаю документацию Keras и Pytorch BN и думаю, что разница заключаетсяв способе, которым они вычисляют «среднее» и «var».
Pytorch:
Среднее значение и стандартное отклонение рассчитываются по размеру для мини-партий
source: Pytorch BatchNorm
Таким образом, они усредняются по выборкам.
Keras:
Ось: целое число,ось, которая должна быть нормализована (обычно это ось объектов).Например, после слоя Conv2D с data_format = "channel_first", установите axis = 1 в BatchNormalization.
source: Keras BatchNorm
и здесь они в среднемпо функциям (каналам)
Какой правильный путь?Как перевести веса BN между моделями?