ML Engine& amp; GCloud

时间:2017-07-05 01:24:39

标签: google-cloud-ml-engine

我想使用此命令在本地训练我的模型:

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

问题在于它抱怨--job-dir: Must be of form gs://bucket/object

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

3 个答案:

答案 0 :(得分:3)

正如其他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

答案 1 :(得分:1)

  

gcloud命令的--package-path参数应指向一个有效Python包的目录,即包含 init .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上的路径

答案 2 :(得分:1)

本地培训试图模拟您使用云运行时发生的情况,因为本地培训的目的是在将作业提交给服务之前检测问题。

使用CMLE服务时使用本地job-dir是一个错误,因为在作业完成后输出不会保留。

因此,使用gcloud进行本地培训也需要将job-dir作为GCS位置。

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