我正在使用 Horovod 在 Tensorflow 中进行一些分布式培训。它对多个工作人员分别进行训练,每个工作人员使用相同的权重并前向传递独特的数据。计算的梯度在将它们应用于权重更新之前在通信器(工作组)内进行平均。我想知道 - 为什么不平均工人的损失函数?平均梯度有什么区别(和潜在的好处)?
为什么我们在分布式训练中平均梯度而不是损失?
人工智能
张量流
分布式计算
2021-10-20 07:24:14
1个回答
这些分布式优化方法背后的整个想法是数据应该在每个节点/工作人员中都是本地的。因此,如果您只将损失值发送到中心节点,则该节点无法计算此损失的梯度,因此无法进行任何训练。但是,如果您不想发送梯度,可以使用称为基于共识的优化的分布式优化算法系列仅将模型的局部权重发送到相邻节点,这些节点使用它们的局部梯度和来自的模型他们的邻居更新他们的本地模型。