我正在尝试使用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包。我不认为这是问题的原因,但无论如何我想提到它。
这个错误有什么原因吗?有人可以帮帮我吗?
也许我做的事情很愚蠢。我试图找到答案(不成功)。
非常感谢!!
答案 0 :(得分:0)
用户代码具有删除现有job-dir的逻辑,这也删除了GCS中的暂存用户代码包,因此迟到的工作人员无法下载该包。
我们建议每个工作都有一个单独的工作目录,以避免类似的问题。