是否有人知道需要对培训师进行哪些更改才能在Google Cloud ML上的分布式平台上运行作业?
如果有人可以分享一些关于同一篇文章或文档,那将会有很大的帮助。
答案 0 :(得分:1)
总的来说,您的分布式TensorFlow程序将完全是 - 分布式TensorFlow,具有最小甚至没有特定于云的更改。在tensorflow.org上,分布式TensorFlow的最佳资源是this tutorial。本教程将引导您完成低级操作方法。
还有一个更高级别的API,目前在contrib中(因此API可能会更改并将在未来版本中移出contrib),这简化了您必须为分布式培训编写的样板代码量。官方教程是here。
一旦您理解了TensorFlow的一般位(无论是高级API还是低级API),您的代码中必须存在一些特定元素才能使其在CloudML Engine上运行。对于低级TensorFlow API,您需要解析TF_CONFIG环境变量以设置ClusterSpec。这在this example中有所体现(具体见this代码块)。
更高级别API的一个优点是,所有这些解析都已经为您完成。您的代码通常应该正常工作。见this example。重要的是你需要使用learn_runner.run()(参见this行),它将在本地和云端工作,以训练你的模型。
当然,还有其他框架,例如TensorFX。
在适当地构建代码之后,您只需在启动培训作业时选择具有多台计算机的相应scale tier。 (有关示例,请参阅Chuck Finley's答案)
希望它有所帮助!
答案 1 :(得分:1)
如果您的模型是使用Tensorflow Estimators构建的,那么您需要做的更改非常少。您基本上可以将代码插入例如this boilerplate code
答案 2 :(得分:0)
您的问题是否通过Run Distributed Training in the Cloud中的“scale-tier”参数来解答?
gcloud ml-engine jobs submit training $JOB_NAME \
--job-dir $OUTPUT_PATH \
--runtime-version 1.0 \
--module-name trainer.task \
--package-path trainer/ \
--region $REGION \
--scale-tier STANDARD_1 \
-- \
--train-files $TRAIN_DATA \
--eval-files $EVAL_DATA \
--train-steps 1000 \
--verbose-logging true