Ошибка Google cloud ML: не удалось запустить сервер gRPC - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь использовать ml-engine для настройки некоторых гиперпараметров пользовательской модели. Модель работает нормально, когда я работаю на одном экземпляре (например, standard_gpu или complex_model_m_gpu), но не удается, когда я пытаюсь запустить то же задание на кластере компьютеров с поддержкой gpu. Я следую инструкциям для уровня CUSTOM, используя файл config.yaml, как описано здесь . Добавление этого файла конфигурации в представление является единственным изменением. Есть ли что-то еще, что мне нужно сделать, чтобы запустить распределенное задание?

Я отправляю работу следующим образом: г

cloud ml-engine jobs submit training $JOB_NAME \
    --job-dir $OUTPUT_PATH \
    --runtime-version 1.10 \
        --python-version 3.5 \
    --module-name module.run_task \
    --package-path module/ \
    --region $REGION \
        --config hptuning_config.yaml \
    -- \
    --train-files $TRAIN_DATA \
    --eval-files $EVAL_DATA \

Для моего файла setup.py требуется тензор потока вероятности 0.3.0 (модель ломается, если я использую 0.4.0).

Ошибка (видна на всех рабочих) вставлена ​​ниже. Любая помощь приветствуется!

TraceBack-replica-0 (последний вызов был последним): файл "/usr/lib/python3.5/runpy.py", строка 184, в _run_module_as_main Файл " main ", mod_spec) "/usr/lib/python3.5/runpy.py", строка 85, в _run_code exec (code, run_globals) Файл "/root/.local/lib/python3.5/site-packages/module/run_task.py", строка 74, в файле train_and_evaluate (hparams) Строка "/root/.local/lib/python3.5/site-packages/module/run_task.py" 42, в train_and_evaluate tf.estimator.train_and_evaluate (оценщик, train_spec, eval_spec) Файл "/Usr/local/lib/python3.5/dist-packages/tensorflow/python/estimator/training.py", строка 451, в train_and_evaluate возвращает файл executor.run () "/Usr/local/lib/python3.5/dist-packages/tensorflow/python/estimator/training.py", строка 617, в файле getattr (self, task_to_run) () "/Usr/local/lib/python3.5/dist-packages/tensorflow/python/estimator/training.py", строка 627, в run_worker вернуть файл self._start_distributed_training () "/Usr/local/lib/python3.5/dist-packages/tensorflow/python/estimator/training.py", строка 747, в _start_distributed_training Файл self._start_std_server (config) "/Usr/local/lib/python3.5/dist-packages/tensorflow/python/estimator/training.py", строка 735, в файле _start_std_server start = False) "/Usr/local/lib/python3.5/dist-packages/tensorflow/python/training/server_lib.py", строка 147, в init self._server_def.SerializeToString (), status) файл "/Usr/local/lib/python3.5/dist-packages/tensorflow/python/framework/errors_impl.py", строка 519, в выход c_api.TF_GetCode (self.status.status)) tenorflow.python.framework.errors_impl.UnknownError: Не удалось запустить Сервер gRPC

1 Ответ

0 голосов
/ 02 ноября 2018

Эта ошибка возникает из-за того, что вы звоните tf.estimator.train_and_evaluate дважды. Когда выполняется второй вызов train_and_evaluate, не все серверы gRPC из первого вызова закрыты, и новые серверы пытаются открыть на портах, которые все еще используются.

Запуск нескольких распределенных заданий подряд не поддерживается в TensorFlow, поскольку серверы параметров, в частности, будут блокироваться до тех пор, пока процесс не будет остановлен. Вам нужно будет реорганизовать свой код, чтобы он включал в себя только один вызов tf.estimator.train_and_evaluate за работу.

...