【发布时间】:2021-11-05 02:23:34
【问题描述】:
为了更好地理解 BN 的工作原理,我决定编写批量标准化代码并将其与 TF 实现进行比较。我做了一个简单的例子(附图片)。如图所示,我计算了批次中每个通道的均值和方差。之后,我使用 BN paper 中提供的公式对数据进行归一化,减去均值,然后除以方差的根(我没有使用比例因子或移位)。然后,我使用了 TF 中的函数 tf.keras.layers.BatchNormalization(center=False, scale=False)。 结果完全不同。
我希望得到一些帮助,以澄清如何在 TensorFlow (TF) 上执行批量标准化 (BN),以及是否有人对结果与 TF 如此不同的原因有所了解。
谢谢。
【问题讨论】:
-
你用
training=True调用了TF的BatchNorm吗? -
是的,我设置 training=True。
-
请查看
BatchNormalization中描述的here 详细信息。
标签: python tensorflow deep-learning