云ML引擎分布式培训默认类型用于自定义TF.Estimator



本文建议分布式培训有三个选项

  1. 使用同步更新的数据并行培训。
  2. 使用异步更新的数据并行培训。
  3. 模型并联训练。

该教程然后继续提出,遵循的代码执行 data-data-parallel培训,并在云ML Engine上进行异步更新,其行为就像"如果您在10个工作节点中分布10,000批次,则每个节点分布10,000批大约有1,000批。"

但是,目前尚不清楚代码的哪些部分实际上指定了使用异步更新的数据并行培训。如果您使用自定义tf.stimator在分布式培训模式下运行ML引擎的默认值?

简短的答案是,tf.estimator目前主要是围绕数据并行培训构建的(2)。

您只需使用代码中的with tf.device()语句即可获得模型平行培训。

您可以尝试使用SynCreplicAsoptimizer,并可能完成同步训练(1)。

以上所有内容通常适用于tf.estimator;CloudMl引擎没有什么不同。

云ML引擎不能确定分布式训练的模式。这取决于用户如何使用TensorFlow库设置培训。在本文链接的MNIST示例中,该代码使用TF学习类,专门在Model.py.py

中构建了估算器。

该代码选择优化器,在这种情况下,该优化器是使用异步更新的adamoptimizer。如果您想执行同步更新,则必须使用其他优化器,例如SynCreplicAsopTimizer。

有关如何设置同步培训的更多信息,您可以参考此文档。

最新更新