使用 tf.distribute.MirroredStrategy 时的有效学习率(一台主机,多 GPU)

问题描述 投票:0回答:1
当使用 tf.distribute.MirroredStrategy(一台主机,多 GPU)时,有效学习率是所需的学习率乘以 GPU 的数量(将学习率乘以 GPU 的数量),或者只是所需的学习率仅使用一个 GPU?

例如,如果我在使用 1 个 GPU 时想要学习率 = 1E-3,我只需使用学习率 = 1E-3 (不使用 tf.distribute.MirroredStrategy);如果我使用 tf.distribute.MirroredStrategy 和 8 个 GPU,我应该设置学习率 = 8E-3 (8 * 1E-3),同样的方式,当我扩展到 8 个 GPU 时,我应该将批量大小乘以 8,或者应该我就用1E-3作为学习率?

提前致谢!

python tensorflow keras
1个回答
0
投票
一般建议是在使用较大批量大小时使用较大学习率,因为每个步骤处理更多数据。

来自指南

使用 Keras 进行分布式训练

对于较大的数据集,分布式训练的主要好处是 在每个训练步骤中学到更多,因为每个步骤处理更多 并行训练数据,允许更大的学习率 (在模型和数据集的限制内)。

但正如引文中提到的,这取决于数据集和模型的大小。小模型(参数数量较少)可能无法很好地响应过高的学习率。

© www.soinside.com 2019 - 2024. All rights reserved.