回答

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答案举例)

希望它有帮助!

+0

非常感谢。它给了我一个起点,因为我对如何修改我的代码感到困惑。 – Appu

+0

我已经能够在分布式环境中运行代码,但截至目前,云中的每台计算机都在接收完整数据并在平均后生成输出。 我想知道如何将分布式数据提供给云中的每台机器。 – Appu

+0

在gogle云ML上提交作业时,出现主要培训python文件(即task.py)无法从util文件夹中的python脚本导入函数的错误。 一般来说,我们写:从util.xyz进口abc 这不会被调用在主task.py – Appu

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 
+0

以下是有关分布式培训信息的直接链接:https://cloud.google.com/ml-engine/docs/how-tos/getting-started-training-prediction#cloud-train-dist – rhaertel80

+0

我认为这个作业提交将在稍后的阶段,一旦我修改了我的代码,按照分布式tensorflow。 – Appu

+0

我已经能够在分布式环境中运行代码,但截至目前,云中的每台计算机都在接收完整数据并在平均后生成输出。我想知道如何将分布式数据提供给云中的每台计算机 – Appu

1

如果您使用Tensorflow Estimators构建了您的模型,则需要做的更改非常少。你基本上可以将你的代码插入this boilerplate code