【发布时间】:2017-06-16 23:11:18
【问题描述】:
有人知道需要对培训师进行哪些更改才能在 Google Cloud ML 上的分布式平台上运行作业吗?
如果有人可以分享几篇相同的文章或文档,那将有很大帮助。
【问题讨论】:
标签: distributed-computing google-cloud-ml google-cloud-ml-engine
有人知道需要对培训师进行哪些更改才能在 Google Cloud ML 上的分布式平台上运行作业吗?
如果有人可以分享几篇相同的文章或文档,那将有很大帮助。
【问题讨论】:
标签: distributed-computing google-cloud-ml google-cloud-ml-engine
总的来说,您的分布式 TensorFlow 程序将完全是分布式 TensorFlow,只需极少(甚至没有)针对云的特定更改。分布式 TensorFlow 的最佳资源是 tensorflow.org 上的 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答案)
希望对你有帮助!
【讨论】:
如果您使用 Tensorflow Estimator 构建模型,那么您需要做的更改非常少。您基本上可以将您的代码插入到例如this boilerplate code.
【讨论】:
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
【讨论】: