尝试将批量归一化层从TensorlayVersion1.11.1转换为Tensorflow 2,并使用相同的预训练模型在推理过程中从该层获得不同的输出。
Tensorlayer 1.11.1
tensorlayer.layers.BatchNormLayer(network, is_train=False, name="batch_norm")
Tensorflow 2.8.0
tf.keras.layers.BatchNormalization(trainable=False, momentum=0.9, axis=3, epsilon=1e-05, gamma_initializer=tf.random_normal_initializer(mean=1.0, stdev=0.002))(network)
为了使BatchNorm输出与之匹配,我遗漏了什么?
发布于 2022-07-13 22:00:55
我所拥有的TF1模型是NPZ格式的。按β,γ,移动均值,方差的顺序保存来自Tensorlayer的权重。在TF2中,批范数层的顺序为:γ,β,移动均值,方差。
如果当从TF1转移到TF2时,beta和gamma的权重顺序被颠倒了,那么它解决了这个问题。
https://stackoverflow.com/questions/72552100
复制相似问题