在ML Engine

时间:2018-05-15 03:45:08

标签: tensorflow google-cloud-ml

我试图使用ML Engine中的分布式训练工作来训练我的模型(不是使用tf.estimator或tf.keras构建)。

为了在ML Engine中运行分布式培训工作,我应该采取哪些步骤?

我找到了以下指南:

因此,如果在命令行中提供的前者意味着我不需要对后者做任何事情,因为ML引擎不知何故负责在设备之间分配我的图形?或者我需要同时做两件事吗?

如果我使用以下方式手动指定设备会发生什么:

with tf.device('/gpu:0/1/2/etc')

..然后使用--scale-tier运行命令?

1 个答案:

答案 0 :(得分:1)

有两种可能的情况:

- 您想使用带CPU的计算机:

在这种情况下,你是对的。使用--scale-tier参数就足以拥有一个在ML Engine中自动分发的作业。

您有多个比例级选项{1}。

- 您想要使用具有GPU的计算机:

在这种情况下,您必须定义一个描述所需GPU选项的config.yaml文件,并运行gcloud命令以config.yaml作为参数{2}启动ML Engine作业。

如果在代码中使用with tf.device('/gpu:0/1/2/etc'),则强制使用该设备并覆盖正常行为。 {3}。

{1}:https://cloud.google.com/ml-engine/reference/rest/v1/projects.jobs#scaletier

{2}:https://cloud.google.com/ml-engine/docs/tensorflow/using-gpus#requesting_gpu-enabled_machines

{3}:https://www.tensorflow.org/programmers_guide/using_gpu