首页 > 解决方案 > 将 Pytorch 批量归一化权重转换为 TensorFlow 批量归一化

问题描述

我一直致力于将 ResNeXt50 权重从 Pytorch 转换为 Tensorflow。我似乎已经从卷积层和完全连接的头中转移了所有其他权重,但是,我似乎无法正确转移批量归一化层内的值。据我了解,Pytorch 批量标准化层具有weightbiasrunning_meanrunning_var. 这些对应于gamma, beta, moving_mean, 和moving_variance在 TensorFlow 的批量标准化中。当我将它们转换为 Tensorflow 时,我检查了批量标准化层的权重,似乎一切正常。但是,当我进行预测时,Tensorflow 批量归一化的输出值与 Pytorch 批量归一化的输出值相差甚远。这种差异是由于不正确的转换,还是两个库在推理时批量标准化行为的差异?

标签: pythontensorflowpytorch

解决方案


推荐阅读