代码之家  ›  专栏  ›  技术社区  ›  user121

培训时单GPU和多GPU设置的损耗是否相同(Tensorflow)?

  •  0
  • user121  · 技术社区  · 7 年前

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

    理论上,对于单GPU和多GPU训练程序,训练期间每个历元中每一步的损失值是否应为相同的值范围?

    就我而言,这不是我目前在训练中看到的情况。多GPU的损耗比我从单个GPU得到的损耗值大5倍。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Szymon Maszke    7 年前

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

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

    推荐文章