0

有人知道需要对培训师进行哪些更改才能在 google cloud ML 上的分布式平台上运行作业吗?

如果有人可以分享一些相同的文章或文档,那将有很大帮助。

4

3 回答 3

1

如果您使用 Tensorflow Estimators 构建模型,那么您需要做的更改非常少。您基本上可以将您的代码插入到例如这个样板代码中。

于 2017-06-16T15:03:22.647 回答
1

总的来说,您的分布式 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 的回答)

希望能帮助到你!

于 2017-04-04T14:39:22.633 回答
0

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
于 2017-04-04T14:20:04.327 回答