Как инициализировать среднее значение и дисперсию Pytorch BatchNorm2d? - PullRequest
0 голосов
/ 11 октября 2019

Я преобразую модель TensorFlow в Pytorch. И я хотел бы инициализировать среднее значение и дисперсию BatchNorm2d, используя модель TensorFlow. Я делаю это следующим образом:

bn.running_mean = torch.nn.Parameter(torch.Tensor(TF_param))

И я получаю эту ошибку:

RuntimeError: the derivative for 'running_mean' is not implemented

Но это работает для bn.weight и bn.bias. Есть ли способ инициализировать среднее значение и дисперсию, используя мою предварительно обученную модель Tensorflow? Есть ли что-нибудь вроде moving_mean_initializer и moving_variance_initializer в Pytorch?

Спасибо!

1 Ответ

1 голос
/ 11 октября 2019

Среднее значение и дисперсия уровня пакетной нормы не nn.Parameters, а скорее буфер слоя.

Я думаю, что вы можете простоприсвойте torch.tensor, не нужно оборачивать nn.Parameter вокруг него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...