我有一个.sh
脚本,它在submit training
工作中吃午餐,如下所示:
now=$(date +"%Y%m%d_%H%M%S")
JOB_NAME="campign_retention_model__$now"
JOB_DIR="gs://machine_learning_datasets/campaign_retention"
REGION="us-east1"
PYTHON_VERSION='3.5'
RUNTIME_VERSION='1.12'
TRAINER_PACKAGE_PATH="./trainer/"
PACKAGE_STAGING_PATH="gs://machine_learning_datasets/campaign_retention"
CLOUDSDK_PYTHON="/usr/bin/python"
MAIN_TRAINER_MODULE="trainer.task"
gcloud ml-engine jobs submit training $JOB_NAME \
--job-dir $JOB_DIR \
--package-path $TRAINER_PACKAGE_PATH \
--module-name $MAIN_TRAINER_MODULE \
--region $REGION \
--runtime-version=$RUNTIME_VERSION \
--python-version=$PYTHON_VERSION \
哪个效果很好(请注意,.sh
位于培训师目录旁边)。
由于外部基础设施的要求,我被迫将项目的内容保存在一个名为:
的存储桶中。"gs://campign_retention_code/camp_ret"
并分发一个独立的sh
,所以我刚刚将其更改为(只是更改了TRAINER_PACKAGE_PATH
的路径):
now=$(date +"%Y%m%d_%H%M%S")
JOB_NAME="campign_retention_model__$now"
JOB_DIR="gs://machine_learning_datasets/campaign_retention"
REGION="us-east1"
PYTHON_VERSION='3.5'
RUNTIME_VERSION='1.12'
TRAINER_PACKAGE_PATH="gs://campign_retention_code/camp_ret/trainer"
PACKAGE_STAGING_PATH="gs://machine_learning_datasets/campaign_retention"
CLOUDSDK_PYTHON="/usr/bin/python"
MAIN_TRAINER_MODULE="trainer.task"
gcloud ml-engine jobs submit training $JOB_NAME \
--job-dir $JOB_DIR \
--package-path $TRAINER_PACKAGE_PATH \
--module-name $MAIN_TRAINER_MODULE \
--region $REGION \
--runtime-version=$RUNTIME_VERSION \
--python-version=$PYTHON_VERSION \
现在,当我运行它时(我将其移动到桌面上的其他位置,/Users/yehoshaphatschellekens/Desktop
,以确保它不靠近我的项目),我收到以下错误消息:
ERROR: (gcloud.ml-engine.jobs.submit.training) Source directory [/Users/yehoshaphatschellekens/Desktop/camp_ret] is not a valid directory.
在查看文档packaging-trainer时,我注意到有两个示例,一个像我的原始脚本一样工作,就像我说的那样,可以很好地工作,另一个例子则使用打包的依赖关系。
为什么提交作业无法识别我对gs
的依赖,我不能仅指向--package-path
的目录gs
而不是我的本地目录吗?
预先感谢!
答案 0 :(得分:1)
我相信您要尝试执行的操作需要使用
--packages gs://path/to/packages
-package-path的INSTEAD