【问题标题】:Local Gradient Aggregation for Horovod using Tensorflow 1.X使用 Tensorflow 1.X 的 Horovod 局部梯度聚合
【发布时间】:2021-07-02 09:31:29
【问题描述】:

我正在尝试使用 Horovod 在不同的服务器上分发训练 GPU。听从Here的建议。

我想实现局部梯度聚合。在解释中修改看起来很容易optimizer = hvd.DistributedOptimizer(opt, backward_passes_per_step=4).
但是尝试在我的示例模型中使用它会导致以下错误。

tensorflow.python.framework.errors_impl.FailedPreconditionError: 2 root error(s) found.
[1,4]<stderr>:  (0) Failed precondition: Attempting to use uninitialized value aggregation_variables_4/aggregation_counter
[1,4]<stderr>:   [[node aggregation_variables_4/aggregation_counter/read

我使用的是原生 TensorFlow 1.15,而不是 keras 或最新的 tensorflow 版本。

这有一个可行的例子吗?或者有人知道如何实现它?

【问题讨论】:

    标签: python tensorflow tensorflow1.15 horovod


    【解决方案1】:

    我已经解决了这个问题。如错误消息中所示aggregation_counter 变量未初始化。我正在使用sess.run(tf.global_variables_initializer())。为了解决这个问题,我添加了sess.run(tf.local_variables_initializer())。这样做已经成功了。我还不确定为什么全局变量初始化程序无法初始化aggregation_counter 变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-10
      • 1970-01-01
      相关资源
      最近更新 更多