有人知道需要对培训师进行哪些更改才能在 google cloud ML 上的分布式平台上运行作业吗?
如果有人可以分享一些相同的文章或文档,那将有很大帮助。
有人知道需要对培训师进行哪些更改才能在 google cloud ML 上的分布式平台上运行作业吗?
如果有人可以分享一些相同的文章或文档,那将有很大帮助。
如果您使用 Tensorflow Estimators 构建模型,那么您需要做的更改非常少。您基本上可以将您的代码插入到例如这个样板代码中。
总的来说,您的分布式 TensorFlow 程序将完全是分布式 TensorFlow,只需极少(甚至没有)特定于云的更改。分布式 TensorFlow 的最佳资源是tensorflow.org 上的本教程。本教程将引导您完成低级的处理方式。
还有一个更高级别的 API,目前在 contrib 中(因此 API 可能会更改,并将在未来版本中移出 contrib),它简化了您必须为分布式训练编写的样板代码量。官方教程在这里。
一旦您了解了通用的 TensorFlow 位(无论是高级还是低级 API),您的代码中必须存在一些特定元素才能使其在 CloudML Engine 上运行。对于低级 TensorFlow API,您需要解析 TF_CONFIG 环境变量来设置 ClusterSpec。这在这个例子中得到了例证(具体参见这个代码块)。
更高级别的 API 的一个优点是,所有的解析都已经为您处理好了。您的代码通常应该可以正常工作。请参阅此示例。重要的是您将需要使用learn_runner.run()(请参阅此行),它将在本地和云中工作以训练您的模型。
当然,还有其他框架,例如TensorFX。
适当地构建代码后,您只需在启动训练作业时选择具有多台机器的适当规模层。(有关示例,请参见Chuck Finley 的回答)
希望能帮助到你!
Run Distributed Training in the Cloud 中的“规模层”参数是否回答了您的问题?
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