训练(Tensorflow)时,单GPU和多GPU设置的损失是否应该相同?

时间:2019-01-31 22:51:11

标签: tensorflow deep-learning gpu

我正在训练语义分割模型。我正在使用10张图像的批处理大小在单个GPU上进行训练。我同时使用相同的超参数在多GPU(3个GPU)设置上进行训练。对于多GPU,我使用的批量大小为30张图像,即每个GPU 10张图像。

从理论上讲,对于单个GPU和多GPU训练过程,训练期间每个时期的每步损失值是否应该在相同范围内?

就我而言,这不是我目前在训练中看到的。多GPU的损失是我从单GPU获得的损失的5倍。

欢迎任何输入/建议。

1 个答案:

答案 0 :(得分:0)

损失取决于批次大小和批次中的元素。使用30张随机图像,丢失的机会更高(尤其是在训练开始时)。

当其中有10个时,神经网络“弄错”的例子就更少了。

另一方面,如果多GPU和单GPU的每批示例数量相同,并且每批示例数量完全相同,并且网络参数相同,则损失也应相同(这可能可以通过固定两种情况下的种子,批次大小和重量来完成操作。

相关问题