在ML-Engine提交培训中添加自定义依赖项将不起作用

时间:2019-01-15 11:45:55

标签: google-cloud-ml

我有一个.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而不是我的本地目录吗?

预先感谢!

1 个答案:

答案 0 :(得分:1)

我相信您要尝试执行的操作需要使用

--packages gs://path/to/packages

-package-path的INSTEAD