例如,如果我在使用 1 个 GPU 时想要学习率 = 1E-3,我只需使用学习率 = 1E-3 (不使用 tf.distribute.MirroredStrategy);如果我使用 tf.distribute.MirroredStrategy 和 8 个 GPU,我应该设置学习率 = 8E-3 (8 * 1E-3),同样的方式,当我扩展到 8 个 GPU 时,我应该将批量大小乘以 8,或者应该我就用1E-3作为学习率?
提前致谢!
来自指南
使用 Keras 进行分布式训练:
对于较大的数据集,分布式训练的主要好处是 在每个训练步骤中学到更多,因为每个步骤处理更多 并行训练数据,允许更大的学习率 (在模型和数据集的限制内)。但正如引文中提到的,这取决于数据集和模型的大小。小模型(参数数量较少)可能无法很好地响应过高的学习率。