【问题标题】:Should loss be same for single-GPU and multi-GPU setup when training (Tensorflow)?训练(Tensorflow)时单GPU和多GPU设置的损失应该相同吗?
【发布时间】:2019-06-25 11:52:04
【问题描述】:

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

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

就我而言,这不是我目前在训练期间看到的。多 GPU 的损失比我从单 GPU 得到的损失值大 5 倍。

欢迎提出任何意见/建议。

【问题讨论】:

    标签: tensorflow deep-learning gpu


    【解决方案1】:

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

    当您拥有其中的 10 个时,您的神经网络“出错”的示例就会减少。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多