【问题标题】:what is the difference between using training=True or not in tf.layers.batch_normalization(training=?)在 tf.layers.batch_normalization(training=?) 中使用 training=True 有什么区别
【发布时间】:2018-08-30 02:43:38
【问题描述】:

最近做了一个实验,使用:tf.layers.batch_normalization(input, training=True)using tf.layers.batch_normalization(input),两种情况都在训练期。

但是发生了一些奇怪的事情。如果我使用:tf.layers.batch_normalization(input, training=True)tf.summary 创建的tfevent file 大约是 400MB,但如果我使用tf.layers.batch_normalization(input),那个文件只有大约 20MB,我不明白这是为什么。

【问题讨论】:

    标签: python tensorflow batch-processing normalization


    【解决方案1】:

    正如here 解释的那样,批量标准化在训练和测试期间具有不同的行为:

    在测试阶段,您根据小批量统计数据对层激活进行标准化,而在测试中,您根据估计的总体统计数据进行。

    此行为通过training 参数控制,如TensorFlow's documentation 中所述。

    因此,在测试期间,存储的信息很少。不过,您不应该将其设置为用于培训目的。

    希望这有帮助!

    【讨论】:

      猜你喜欢
      • 2022-12-24
      • 1970-01-01
      • 2019-12-10
      • 2020-03-24
      • 2019-12-02
      • 2020-03-02
      • 2019-12-17
      • 2018-10-07
      • 1970-01-01
      相关资源
      最近更新 更多