我想使用以下命令在本地训练我的模型:
gcloud ml-engine local train
--module-name cloud_runner
--job-dir ./tmp/output
问题是它抱怨--job-dir: Must be of form gs://bucket/object
。
这是一列本地火车,所以我想知道为什么它希望输出是gs
存储桶而不是本地目录。
我想使用以下命令在本地训练我的模型:
gcloud ml-engine local train
--module-name cloud_runner
--job-dir ./tmp/output
问题是它抱怨--job-dir: Must be of form gs://bucket/object
。
这是一列本地火车,所以我想知道为什么它希望输出是gs
存储桶而不是本地目录。
正如其他 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
本地培训尝试模拟您使用云运行时发生的情况,因为本地培训的目的是在将您的作业提交给服务之前检测问题。
在使用 CMLE 服务时使用本地作业目录是错误的,因为在作业完成后输出不会持续存在。
因此,使用 gcloud 进行本地培训还要求 job-dir 是 GCS 位置。
如果你想在本地运行而不使用 GCS,你可以直接运行 TensorFlow 程序而不使用 gcloud。
gcloud 命令的 --package-path 参数应该指向一个有效的 Python 包目录,即包含一个init .py 文件(通常是一个空文件)的目录。请注意,它应该是本地目录,而不是 GCS 上的目录。
--module 参数将是该包中有效 Python 模块的完全限定名称。您可以根据需要组织目录,但为了保持一致性,这些示例都有一个名为 trainer 的 Python 包,其中要运行的模块名为 task.py。
--来源
因此,您需要使用有效路径更改此块:
gcloud ml-engine local train
--module-name cloud_runner
--job-dir ./tmp/output
具体来说,您的错误是由于--job-dir ./tmp/output
它期望您的路径gcloud