Cloud ML Engine为自定义tf.estimator分发了培训默认类型

时间:2017-08-31 16:51:51

标签: tensorflow google-cloud-platform google-cloud-ml google-cloud-ml-engine

article表明分布式培训有三种选择

  1. 使用同步更新的数据并行培训。
  2. 使用异步更新进行数据并行培训。
  3. 模型并行培训。
  4. 然后,本教程继续建议后面的代码使用Cloud ML Engine上的异步更新执行数据并行培训,其行为为“如果在10个工作节点之间分配10,000个批次,每个节点大约1,000批次。“

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

2 个答案:

答案 0 :(得分:1)

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

只需在代码中使用with tf.device()语句即可获得模型并行训练。

您可以尝试使用SyncReplicasOptimizer并可能完成同步培训(1)。

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

答案 1 :(得分:0)

Cloud ML Engine无法确定分布式培训的模式。这取决于用户如何使用TensorFlow库设置培训。在本文链接的mnist示例中,代码使用TF Learn类,特别是在model.py中构建了Estimator

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

有关如何设置同步培训的详细信息,请参阅此doc