【问题标题】:Single Prediction when using Batch Normalization使用批量标准化时的单一预测
【发布时间】:2017-12-02 02:05:02
【问题描述】:

我有一个 CNN,它在我创建的数据集上学习得很好。我向这个网络添加了 Batch Normalization 以尝试提高性能。

但是 .. 当我尝试对单个图像进行预测时,我总是得到相同的结果(无论图像如何)。我认为这是因为我需要批次来实际进行批次标准化。

那么是否可以使用 BN 对单个图像进行预测? 我想在我的网络完成训练后删除 BN 层,这是要走的路吗?

谢谢你:)

【问题讨论】:

  • 这不是batch normalization引起的问题,可能是其他问题,请提供更多细节。
  • 我真的认为它实际上是由批量标准化引起的,因为当我用一批图像(而不是单个图像)进行预测时,它可以工作。但我想对单个图像进行预测。
  • 好吧,我无法用我的模型重现这种行为,它们总是与 BN 和单个图像批次配合得很好。而且在测试时,标准化统计数据是固定的,而不是批量计算的。所有这些都指向代码中的问题,而不是技术问题。
  • 是的,归一化参数(比例和偏移)是在训练期间学习并为测试而固定的,但您是否仍然需要通过批次计算均值和方差? (见tensorflow.org/api_docs/python/tf/nn/moments

标签: deep-learning classification batch-normalization


【解决方案1】:

我在这里找到了确切的答案和我面临的问题:https://r2rt.com/implementing-batch-normalization-in-tensorflow.html 在“使用模型进行预测”中解释说,在使用 BN 时,在训练期间您需要估计训练集上的总体均值和总体方差,因此您在进行测试时不必使用批处理(这将是“作弊”) :)

【讨论】:

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