Проблемы с обычным оценщиком Tensorflow, работающие с несколькими рабочими в движке Google Cloud ML

Я пытаюсь обучить модель с помощью стандартного оценщика DNNClassifier на облачном движке Google.

Я могу успешно обучать модель локально в одиночном и распределенном режиме. Кроме того, я могу обучать модель в облаке с предоставленным уровнем масштабирования BASIC и BASIC_GPU.

Теперь я пытаюсь передать свой собственный файл конфигурации. Когда я указываю только «masterType: standard» в файле конфигурации без упоминания рабочих и серверов параметров, задание выполняется успешно.

Однако всякий раз, когда я пытаюсь добавить воркеров, задание терпит неудачу:

trainingInput:
  scaleTier: CUSTOM
  masterType: standard
  workerType: standard
  workerCount: 4

Вот как я запускаю задание (я получаю ту же ошибку без упоминания промежуточного сегмента):

SCALE_TIER=CUSTOM
JOB_NAME=chasingdatajob_10252017_13
OUTPUT_PATH=gs://chasingdata/$JOB_NAME
STAGING_BUCKET=gs://chasingdata
gcloud ml-engine jobs submit training $JOB_NAME --staging-bucket "$STAGING_BUCKET" --scale-tier $SCALE_TIER --config $SIMPLE_CONFIG --job-dir $OUTPUT_PATH --module-name trainer.task --package-path trainer/ --region $REGION -- ...

В моем журнале заданий показано, что задание завершено с ненулевым статусом 1. Я вижу следующую ошибку для worker-replica-3:

Command '['gsutil', '-q', 'cp', u'gs://chasingdata/chasingdatajob_10252017_13/e476e75c04e89e4a0f2f5f040853ec21974ae0af2289a2563293d29179a81199/trainer-0.1.tar.gz', u'trainer-0.1.tar.gz']' returned non-zero exit status 1

Я проверил свою корзину (gs: // chasingdata). Я вижу каталог chasingdatajob_10252017_13, созданный движком, но нет файла trainer-0.1.tar.gz. Еще одна вещь, о которой стоит упомянуть - я передаю "tensorflow == 1.4.0rc0" как пакет PyPi в облако в моем файле setup.py. Я не думаю, что это причина проблемы, но подумал, что все равно упомяну об этом.

Есть ли причина для этой ошибки? Кто-нибудь может мне помочь?

Возможно, я делаю что-то глупое. Я пытался найти на это ответ (безуспешно).

Большое спасибо!!


person MarquesDeCampo    schedule 26.10.2017    source источник
comment
Не могли бы вы предоставить список каталогов: gsutil ls -l -h gs://chasingdata/chasingdatajob_10252017_13/e476e75c04e89e4a0f2f5f040853ec21974ae0af2289a2563293d29179a81199   -  person rhaertel80    schedule 26.10.2017
comment
Конечно. Вот оно: ...@angular-vector-181314:~$ gsutil ls -l -h gs://chasingdata/chasingdatajob_10252017_13/e476e75c04e89e4a0f2f5f040853ec21974ae0af2289a2563293d29179a81199 CommandException: один или несколько URL-адресов не соответствуют ни одному объекту.   -  person MarquesDeCampo    schedule 26.10.2017
comment
И ...@angular-vector-181314:~$ gsutil ls -l -h gs://chasingdata/chasingdatajob_10252017_13 0 B 2017-10-25T19: 25: 10Z gs: // chasingdata / chasingdatajob_10252017_13 / 77,55 KiB 2017-10-25T19: 25: 10Z gs: //chasingdata/chasingdatajob_10252017_13/events.out.tfevents.1508959510.master- 5252b8c60b-0-d522f ИТОГО: 2 объекта, 79410 байт (77,55 КБ)   -  person MarquesDeCampo    schedule 26.10.2017
comment
Вы можете удалить --staging-bucket и посмотреть, работает ли это?   -  person rhaertel80    schedule 27.10.2017
comment
@ rhaertel80, спасибо за вашу помощь. Я удалил --staging-bucket, но он все еще не работает. Я немного поигрался с этим и думаю, что проблема в workerCount. Когда я изменяю workerCount на 2, задание выполняется успешно. Но когда я устанавливаю для workerCount значение 4, возникает ошибка, указанная выше. Я что-то упускаю?   -  person MarquesDeCampo    schedule 27.10.2017
comment
Это очень странно, учитывая симптомы. Вы хотите публиковать код в открытом доступе или отправлять частным образом на адрес [email protected]?   -  person rhaertel80    schedule 27.10.2017
comment
Спасибо, отправьте код на электронную почту в частном порядке   -  person MarquesDeCampo    schedule 28.10.2017


Ответы (1)


Код пользователя имеет логику для удаления существующего каталога заданий, который также удалил пакет поэтапного кода пользователя в GCS, так что рабочие, начавшие с опозданием, не смогли загрузить пакет.

Мы рекомендуем, чтобы у каждого задания был отдельный каталог заданий, чтобы избежать подобных проблем.

person Guoqing Xu    schedule 31.10.2017
comment
Обратите внимание, что это также исправлено в коде переписи. - person Puneith Kaul; 12.12.2017