【问题标题】:Batch normalization changes depending on batch during test time批次标准化在测试期间根据批次而变化
【发布时间】:2016-05-31 04:40:30
【问题描述】:

假设我正在使用 64 个数据点的批量大小。在训练期间,我会更新均值和方差的指数移动平均值,并在测试期间使用这些平均值。

我有两个测试用例: (1) 数据点-A + 63 个其他唯一数据点, (2) datapoint-A 重复 64 次

我期望发生的事情: 在测试期间,两种情况下数据点 A 的输出应该相同,因为均值和方差用于归一化。

我的实现中发生了什么: 每个测试用例的输出都不同,即每个测试示例的输出依赖于批处理中提供的其他示例,因为归一化。

我的预期是错误的,还是正确的,我需要专注于调试我的实现?

【问题讨论】:

    标签: machine-learning neural-network normalization conv-neural-network


    【解决方案1】:

    不应在测试时间内进行归一化调整。您需要区分网络的训练时间和测试时间。在训练期间,您适合归一化,一旦完成 - 计算整个训练集(或至少可表示的批次)的归一化,然后修复它并将固定的用于预测阶段。

    【讨论】:

      猜你喜欢
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 2017-10-21
      • 2017-03-03
      • 1970-01-01
      相关资源
      最近更新 更多