2017-07-05 58 views
0

培训本地我想训练我的模型在本地使用这个命令:与ML引擎与GCloud

gcloud ml-engine local train 
    --module-name cloud_runner 
    --job-dir ./tmp/output 

的问题是,它抱怨说--job-dir: Must be of form gs://bucket/object

这是一个本地列车,所以我想知道为什么它希望输出是一个gs存储桶而不是本地目录。

+0

这可能是一个错误...... – hellowill89

回答

1

正如其他gcloud所解释的--job-dir期望位置在GCS中。为了解决这个问题,你可以直接将它作为一个文件夹传递给你的模块。

gcloud ml-engine local train \ 
    --package-path trainer \ 
    --module-name trainer.task \ 
    -- \ 
    --train-files $TRAIN_FILE \ 
    --eval-files $EVAL_FILE \ 
    --job-dir $JOB_DIR \ 
    --train-steps $TRAIN_STEPS 
+0

权,只需要记住移动'--job-dir'备份真正训练的时候。 – hellowill89

+1

@ hellowill89这个问题已在未来几个星期内发布的版本中修复。 – rhaertel80

+0

@ rhaertel80谢谢! – hellowill89

1

的--package路径参数给gcloud指令应指向一个目录,是一个有效的Python包,即包含一个初始化 .py文件(通常是空的文件)的目录。请注意,它应该是本地目录,而不是GCS上的目录。

--module参数将是该包中有效Python模块的完全限定名称。您可以根据需要组织目录,但为了保持一致性,样本都有一个名为trainer的Python包,其中要运行的模块名称为task.py。

- Source

因此,你需要用有效的路径来改变此块:

gcloud ml-engine local train 
    --module-name cloud_runner 
    --job-dir ./tmp/output 

具体,你的错误是由于--job-dir ./tmp/output因为它期待您gcloud

路径
1

本地培训试图模拟当您使用云运行时发生的情况,因为本地培训的重点是在提交之前检测问题你的工作到服务。

使用CMLE服务时使用本地作业目录是一个错误,因为作业完成后输出不会持续。

因此,使用gcloud进行本地培训还要求作业目录是GCS位置。

如果你想在本地运行而不使用GCS,你可以直接运行你的TensorFlow程序而不使用gcloud。