当尝试使用带有Chainer的Resnet50预测单个图像时,出现警告“批次不超过一个样本---”

时间:2018-07-11 03:13:10

标签: chainer

当尝试预测单个图像时,我收到警告:“给F.batch_normalization的批次不超过一个样本。F.batch_normalization始终为此类批次输出零张量。”

我在Chainer上使用Resnet50模型(二进制分类输出),训练时,训练和测试集的准确性均> 98%。但是当我尝试预测单个图像时,准确率只有大约50%。

我想我必须批量预测图像(因为“批量归一化”)以避免警告并获得高精度,对吗?可以预测单个图像吗?

P / s:我在预测脚本中尝试了chainer.using_config('train',False),但没有帮助。

2 个答案:

答案 0 :(得分:1)

您正确设置了chainer.config.train = False吗?请注意,chainer.using_config是上下文管理器。

with chainer.using_config('train', False):
    do_something()

(几乎)等同于:

chainer.config.train = False
try:
    do_something()
finally:
    chainer.config.train = True

另请参阅:https://docs.chainer.org/en/stable/reference/configuration.html#changing-configuration

答案 1 :(得分:0)

您能否上传完整的堆栈跟踪信息? 我对引发错误的位置非常感兴趣。

如果来自“ chainer / links / normalization / batch_normalization.py”行271〜273,则错误可归因于chainer.config.train == True

在其他情况下,发生了一些问题。

或者,您可以尝试     打印(“ chainer.config.train”) 在您致电L.BatchNormalization之前。