我有一个.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
位于教练dir旁边)。
由于外部的基础设施要求,我被迫将项目内容保存在一个名为的存储桶中:
"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
的目录而不是我的本地目录吗?
提前致谢!!!
我相信你要做的事情需要使用
--packages gs://path/to/packages
INSTEAD --package-path