Добавление пользовательской зависимости не будет работать в ML-Engine - PullRequest
0 голосов
/ 15 января 2019

У меня есть сценарий .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.

Глядя на документы package-trainer я заметил, что есть два примера, один из которых работает как мой оригинальный скрипт, который, как я уже сказал, работает отлично, и другой пример, использующий пакетную зависимость.

Почему задание на отправку не распознает мои зависимости от gs, я не могу просто указать --package-path каталог из gs вместо моего локального каталога?

Заранее спасибо !!!

1 Ответ

0 голосов
/ 15 января 2019

Я считаю, что то, что вы пытаетесь сделать, требует использования

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

ВМЕСТО --package-path

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...