【问题标题】:Training locally with ML Engine & GCloud使用 ML Engine 和 GCloud 进行本地训练
【发布时间】:2017-07-06 06:57:48
【问题描述】:

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

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

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

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

【问题讨论】:

  • 这可能是一个错误...

标签: google-cloud-ml-engine


【解决方案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

【讨论】:

  • 对,只需要记住在真实训练时将--job-dir 移回即可。
  • @hellowill89 这已在未来几周内推出的未来版本中得到修复。
  • @rhaertel80 谢谢!
【解决方案2】:

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 上的路径

【讨论】:

    【解决方案3】:

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

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

    因此,使用 gcloud 进行本地培训还要求 job-dir 是 GCS 位置。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-29
      • 2018-10-28
      • 2018-03-24
      • 2020-09-14
      • 1970-01-01
      相关资源
      最近更新 更多