Я пытаюсь использовать 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
так что я не уверен, что происходит не так?