python - 将 Pytorch 批量归一化权重转换为 TensorFlow 批量归一化
问题描述
我一直致力于将 ResNeXt50 权重从 Pytorch 转换为 Tensorflow。我似乎已经从卷积层和完全连接的头中转移了所有其他权重,但是,我似乎无法正确转移批量归一化层内的值。据我了解,Pytorch 批量标准化层具有weight
、bias
、running_mean
和running_var
. 这些对应于gamma
, beta
, moving_mean
, 和moving_variance
在 TensorFlow 的批量标准化中。当我将它们转换为 Tensorflow 时,我检查了批量标准化层的权重,似乎一切正常。但是,当我进行预测时,Tensorflow 批量归一化的输出值与 Pytorch 批量归一化的输出值相差甚远。这种差异是由于不正确的转换,还是两个库在推理时批量标准化行为的差异?
解决方案
推荐阅读
- .net-standard - Azure Durable - 绑定类型未注册
- c# - 在c#中使用正则表达式匹配集合重写url
- android - 您是否在 AndroidManifest.xml 中声明了此活动?(安卓工作室)2018
- javascript - 选择边框不正确,而画布的缩放值不是 1
- python - 找不到模块 qiskit_aqua.algorithms
- javascript - 从重复数组填充数组
- sql - 超过 2 个表的 SQL 查询
- vue.js - 简写的 ES6 方法语法是否也适用于 ES5?
- c# - 使用滑动效果展开和折叠画布 - UWP C#
- c# - 并行枚举目录消耗非常高的物理内存使用率