我正在尝试使用 Horovod 在不同的服务器上分发训练 GPU。按照这里的建议。
我想实现局部梯度聚合。在解释中,修改看起来很容易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 版本。
有一个可行的例子吗?或者有人知道如何实现它?