我试图使用ML Engine中的分布式训练工作来训练我的模型(不是使用tf.estimator或tf.keras构建)。
为了在ML Engine中运行分布式培训工作,我应该采取哪些步骤?
我找到了以下指南:
--scale-tier
参数
因此,如果在命令行中提供的前者意味着我不需要对后者做任何事情,因为ML引擎不知何故负责在设备之间分配我的图形?或者我需要同时做两件事吗?
如果我使用以下方式手动指定设备会发生什么:
with tf.device('/gpu:0/1/2/etc')
..然后使用--scale-tier
运行命令?
答案 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