【发布时间】: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