在Google云端引擎上运行多个工作人员的Tensorflow Canned Estimator问题

时间:2017-10-26 10:06:06

标签: tensorflow google-cloud-ml-engine

我正在尝试使用google cloud ml-engine上的固定DNNClassifier估算器来训练模型。

我能够以单一和分布式模式在本地成功训练模型。此外,我能够使用提供的BASIC和BASIC_GPU比例层在云上训练模型。

我现在正在尝试传递自己的自定义配置文件。当我只指定" masterType:standard"在配置文件中没有提到worker,参数服务器,作业成功运行。

但是,每当我尝试添加工作时,作业都会失败:

trainingInput:
  scaleTier: CUSTOM
  masterType: standard
  workerType: standard
  workerCount: 4

以下是我运行作业的方法(我在没有提到暂存存储桶的情况下得到了同样的错误):

SCALE_TIER=CUSTOM
JOB_NAME=chasingdatajob_10252017_13
OUTPUT_PATH=gs://chasingdata/$JOB_NAME
STAGING_BUCKET=gs://chasingdata
gcloud ml-engine jobs submit training $JOB_NAME --staging-bucket "$STAGING_BUCKET" --scale-tier $SCALE_TIER --config $SIMPLE_CONFIG --job-dir $OUTPUT_PATH --module-name trainer.task --package-path trainer/ --region $REGION -- ...

我的作业日志显示作业退出时的非零状态为1.我看到worker-replica-3出现以下错误:

Command '['gsutil', '-q', 'cp', u'gs://chasingdata/chasingdatajob_10252017_13/e476e75c04e89e4a0f2f5f040853ec21974ae0af2289a2563293d29179a81199/trainer-0.1.tar.gz', u'trainer-0.1.tar.gz']' returned non-zero exit status 1

我检查了我的桶(gs:// chasingdata)。我看到引擎创建的chasingdatajob_10252017_13目录,但没有trainer-0.1.tar.gz文件。还有一件事要提 - 我正在传递" tensorflow == 1.4.0rc0"作为我的setup.py文件中云的PyPi包。我不认为这是问题的原因,但无论如何我想提到它。

这个错误有什么原因吗?有人可以帮帮我吗?

也许我做的事情很愚蠢。我试图找到答案(不成功)。

非常感谢!!

1 个答案:

答案 0 :(得分:0)

用户代码具有删除现有job-dir的逻辑,这也删除了GCS中的暂存用户代码包,因此迟到的工作人员无法下载该包。

我们建议每个工作都有一个单独的工作目录,以避免类似的问题。