添加自定义依赖项在 ML-Engine 提交训练中不起作用
Adding custom dependancy wont work in ML-Engine submit training
我有一个 .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"
并且单独发一个stand alone 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
代替--package-path
我有一个 .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"
并且单独发一个stand alone 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
代替--package-path