google-cloud-ml - 添加自定义依赖项在 ML-Engine 提交训练中不起作用
问题描述
我有一个.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.
查看文档包装培训师,我注意到有两个示例,一个与我的原始脚本一样工作,正如我所说,它完美地工作,另一个使用打包依赖的示例。
为什么提交作业无法识别我的依赖关系gs
,我不能只指向--package-path
一个目录gs
而不是我的本地目录吗?
提前致谢!!!
解决方案
我相信你想做的事情需要使用
--packages gs://path/to/packages
代替 --package-path
推荐阅读
- c++ - 如何使用 std::move 从向量中删除最后一项并更新向量大小
- eclipse - Birt Reporting Tool中对特定ID值的查询数据
- maven - mvn test -Premote 失败但在 IntelliJ IDEA 上成功
- python - tensorflow 数据集列的归一化
- powershell - 使用 Powershell 将唯一 ID 添加到 CSV
- kdb - 优化/简洁 q kdb 中的条件代码
- javascript - 使用 javascript 解析 API 响应
- mysql - 如果值大于 0,则过滤不同的值(如果存在)
- django - 无法在 django rest 框架中导入名称
- python - Python 和 CSV 文件中的嵌套循环