TPUEstimator на GCMLE "InternalError: Задание" master "не определено в кластере" - PullRequest
0 голосов
/ 30 мая 2018

Я пытаюсь использовать GCMLE с версией 1.8 TF, следуя инструкциям в этом руководстве .

Для TF 1.8 они говорят:

tpu_cluster_resolver = tf.contrib.cluster_resolver.TPUClusterResolver(
FLAGS.tpu,
zone=FLAGS.tpu_zone,
project=FLAGS.gcp_project)

config = tpu_config.RunConfig(
    cluster=tpu_cluster_resolver,
    model_dir=FLAGS.model_dir,
    save_checkpoints_steps=max(600, FLAGS.iterations_per_loop),
    tpu_config=tpu_config.TPUConfig(
        iterations_per_loop=FLAGS.iterations_per_loop,
        num_shards=FLAGS.num_cores))

Затем я передаю их в TPUEstimator / train_and_evaluate () следующим образом:

estimator = tpu_estimator.TPUEstimator(
    use_tpu=True,
    model_fn=model_fn,
    config=run_config,
    params = params,
    train_batch_size = params.train_batch_size,
    eval_batch_size = params.eval_batch_size,
    )

tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec)

Для 1.7 они отдельно говорятиспользовать другую конфигурацию с флагом «master».Однако, когда я запускаю вышеприведенные инструкции 1.8 для GCMLE с --runtime_version, установленным на 1.8, я получаю следующую ошибку трассировки, которая предполагает InternalError: Job "master" was not defined in cluster

Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/root/.local/lib/python2.7/site-packages/trainer/task.py", line 585, in <module> run_experiment(params) File "/root/.local/lib/python2.7/site-packages/trainer/task.py", line 127, in run_experiment tf.estimator.train_and_evaluate(estimator, train_spec, eval_spec) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 439, in train_and_evaluate executor.run() File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 546, in run getattr(self, task_to_run)() File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 601, in run_master self._start_distributed_training(saving_listeners=saving_listeners) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 719, in _start_distributed_training self._start_std_server(config) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/estimator/training.py", line 707, in _start_std_server start=False) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/server_lib.py", line 147, in __init__ self._server_def.SerializeToString(), status) File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/errors_impl.py", line 519, in __exit__ c_api.TF_GetCode(self.status.status)) InternalError: Job "master" was not defined in cluster

Это сбивает с толку, потому что документация говорит, что не следует использовать master так что я не уверен, что происходит не так?

1 Ответ

0 голосов
/ 14 февраля 2019

TPUEstimator вызывается с использованием estimator.train (input_fn = train_input_fn, max_steps = next_checkpoint) и estimator.evaluate ()

Ссылка

tf.estimator.train_and_evate (оценщик, train_spec, eval_spec) работает только на CPU / GPU.

...