batchnorm是一种让神经网络训练更快、更稳定的方法。它计算每个batch的均值和方差,并作归一化将其调整到均值为0方差为1的标准正态分布。
tensorflow中的batchnorm(常用keras中的定义):
keras.layers.BatchNormalization(epsilon=EPS),espilon是一个调整因子。BatchNormalization默认对最后一个维度做归一化。
pytorch中用BatchNorm2d(num_features,eps),对num_features所在的维度做归一化。
1)tensorflow转pytorch
如果我们有一个训练好的tensorflow的keras.layers.BatchNormalization要转换成pytorch对应的模型。
输入的形状为[1,2,3,4],BatchNormalization中的epislon参数对应BatchNorm2d 的eps参数,这里取1e-5。通过代码:
layer_th.weight.data = torch.tensor(layer_tf.gamma.numpy())
layer_th.bias.data = torch.tensor(layer_tf.beta.numpy())
layer_th.running_mean.data = torch.tensor(layer_tf.moving_mean.numpy())
layer_th.running_var.data = t

最低0.47元/天 解锁文章
566

被折叠的 条评论
为什么被折叠?



