У меня есть сценарий .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
вместо моего локального каталога?
Заранее спасибо !!!