我正在以 EDSR 作为基准模型来处理图像超分辨率任务。在 EDSR 之后,我没有在我的模型中使用任何批处理规范层。我突然想出了一个关于批量大小的愚蠢问题。
目前,我正在使用 batch-size=32 训练我的模型(如在 EDSR 中)。但由于我没有使用任何批量标准化技术,我看不出有任何理由使用大于 1 的批量大小。但我对自己的想法没有信心,因为作者的实现使用大于 1 的批量大小。
有人可以帮我解决这个问题吗?我错过了什么?
我正在以 EDSR 作为基准模型来处理图像超分辨率任务。在 EDSR 之后,我没有在我的模型中使用任何批处理规范层。我突然想出了一个关于批量大小的愚蠢问题。
目前,我正在使用 batch-size=32 训练我的模型(如在 EDSR 中)。但由于我没有使用任何批量标准化技术,我看不出有任何理由使用大于 1 的批量大小。但我对自己的想法没有信心,因为作者的实现使用大于 1 的批量大小。
有人可以帮我解决这个问题吗?我错过了什么?
在FAIR 进行的 BatchNorm 研究中 Rethinking “Batch” 中,讨论了批量标准化和批量大小。根据下图,您可以看到批量标准化和批量大小的关系。它表明,当您使用较小的批量大小时,您不需要使用批量标准化。当您有更大的批量大小时,批量标准化很有帮助。使用较小的批大小和批标准化会导致训练/测试不一致。
不同归一化批大小下的分类错误,总批大小固定为 1024。绿色:使用小批量统计的未增强训练集的错误率;红色:使用 PreciseBN 估计的总体统计数据在验证集上的错误率;蓝色:使用随机批次的小批量统计数据在验证集上的错误率(与训练中使用的标准化批次大小相同)。红色和蓝色曲线之间的差距是由训练测试不一致造成的,而蓝色和绿色曲线之间的差距是在未见数据集上的泛化差距。