TensorFlow Estimator: как сделать прогноз при использовании сервера параметров?

TensorFlow Estimator легко использовать для распределенного обучения со стратегией сервера параметров. Но я не могу делать прогнозы со стратегией сервера параметров. Я не могу найти какой-либо ресурс, чтобы представить эту часть.

пример кода прогноза:

    run_config = tf.estimator.RunConfig()
    model = tf.estimator.Estimator(
        model_fn=self.model_fn,
        model_dir=self._config.model_path,
        config=run_config,
        params=self.params())
    results = model.predict(
        input_fn=lambda: test_data.build(
            batch_size=self._config.eval_batch_size,
            num_epochs=1))

TF_CONFIG:

{'task': {'index': '0', 'type': 'ps'}, 'cluster': {'chief': ['127.0.0.1:2320'], 'ps': ['127.0.0.1:2220', '127.0.0.1:2221']}}
{'task': {'index': '1', 'type': 'ps'}, 'cluster': {'chief': ['127.0.0.1:2320'], 'ps': ['127.0.0.1:2220', '127.0.0.1:2221']}}
{'task': {'index': '0', 'type': 'chief'}, 'cluster': {'chief': ['127.0.0.1:2320'], 'ps': ['127.0.0.1:2220', '127.0.0.1:2221']}}

Результат: И PS, и Woker сделали прогноз.

Любое предложение? Большое спасибо.


person nolan liou    schedule 24.09.2019    source источник


Ответы (1)


В оценщик прогнозирует каждый пс и рабочий использует MonitoredSession для запуска узла, который восстанавливается из существующей контрольной точки. Чтобы сделать распределенный прогноз, вы можете обратиться к Обучение оценщиков.

  • начать ps< /сильный>
  • run_worker Create MonitoredTrainingSession instead of a MonitoredSession
    • Remember to start worker server.
  • estimator.predict получает path за контрольную точку, MonitoredTrainingSession получает directory за контрольную точку.

Вы можете успешно запустить все серверы и распределенный прогноз. Но будут предупреждения типа, что глобальный шаг не увеличивается.

Подробный код на Github

person chunyang.wen    schedule 17.08.2020