我总共使用 3000 张图像来训练 ssd_inception_v2_coco 作为对象检测模型。我将批量大小设置为 4,因为我没有高端 GPU,因此我租用了几个小时,并希望将网络运行 40000 步。
到目前为止,网络已经达到了 15000 步,但是损失非常大(4.12)。
我的问题是:
- 是因为批量小而导致损失高吗?
- 如果我使用的批次大小非常低,那么收敛需要 100k 步吗?
我总共使用 3000 张图像来训练 ssd_inception_v2_coco 作为对象检测模型。我将批量大小设置为 4,因为我没有高端 GPU,因此我租用了几个小时,并希望将网络运行 40000 步。
到目前为止,网络已经达到了 15000 步,但是损失非常大(4.12)。
我的问题是:
无论从更一般的意义上训练模型,您都可能过于频繁地检查模型,以发现任何实际的性能提升。
更具体地说,例如,如果每 5 个批次打印一次性能指标,您会看到仅基于5 x 4 = 20数据样本的性能提升,这对于 DL 模型来说太低而无法学习任何有意义的东西。在模型的情况下batch_size = 256会看到比你的案例更多的样本。
我希望这有帮助。