tf.data.experimental.service.DispatchServer
Сервер диспетчеризации tf.data в процессе.
tf.data.experimental.service.DispatchServer(
config=None, start=True
)
Объект tf.data.experimental.service.DispatchServer координирует кластер tf.data.experimental.service.WorkerServer серверов. При запуске worker-серверы регистрируются у диспетчера.
dispatcher = tf.data.experimental.service.DispatchServer()
dispatcher_address = dispatcher.target.split("://")[1]
worker = tf.data.experimental.service.WorkerServer(
tf.data.experimental.service.WorkerConfig(
dispatcher_address=dispatcher_address))
dataset = tf.data.Dataset.range(10)
dataset = dataset.apply(tf.data.experimental.service.distribute(
processing_mode="parallel_epochs", service=dispatcher.target))
print(list(dataset.as_numpy_iterator()))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]При запуске отдельного процесса диспетчеризации tf.data, используйте join(), чтобы заблокировать выполнение после запуска сервера, до его завершения.
dispatcher = tf.data.experimental.service.DispatchServer(
tf.data.experimental.service.DispatcherConfig(port=5050))
dispatcher.join()
Вызовите stop(), чтобы корректно завершить работу диспетчера. Сервер автоматически останавливается, когда все ссылки на него удалены.
Чтобы запустить DispatchServer в режиме отказоустойчивости, установите work_dir и fault_tolerant_mode как показано ниже:
dispatcher = tf.data.experimental.service.DispatchServer(
tf.data.experimental.service.DispatcherConfig(
port=5050,
work_dir="gs://my-bucket/dispatcher/work_dir",
fault_tolerant_mode=True))
| Аргументы | |
|---|---|
config | (Необязательно.) Настройка tf.data.experimental.service.DispatcherConfig. Если None, диспетчер будет использовать значения конфигурации по умолчанию. |
start | (Необязательно.) Логический параметр, указывающий, нужно ли запускать сервер после его создания. По умолчанию True. |
| Атрибуты | |
|---|---|
target | Возвращает адрес, который можно использовать для подключения к серверу.
dispatcher = tf.data.experimental.service.DispatchServer()
dataset = tf.data.Dataset.range(10)
dataset = dataset.apply(tf.data.experimental.service.distribute(
processing_mode="parallel_epochs", service=dispatcher.target))Возвращаемая строка будет в формате protocol://address, например, "grpc://localhost:5050". |
Методы
join
join() -> None
Ожидает завершения работы сервера.
Это полезно при запуске отдельного процесса диспетчеризации.
dispatcher = tf.data.experimental.service.DispatchServer(
tf.data.experimental.service.DispatcherConfig(port=5050))
dispatcher.join()
| Исключения | |
|---|---|
tf.errors.OpError | Или одно из его подклассов, если произошла ошибка при подключении к серверу. |
start
start()
Запускает этот сервер.
dispatcher = tf.data.experimental.service.DispatchServer(start=False) dispatcher.start()
| Исключения | |
|---|---|
tf.errors.OpError | Или одно из его подклассов, если произошла ошибка при запуске сервера. |
stop
stop() -> None
Останавливает сервер.
| Исключения | |
|---|---|
tf.errors.OpError | Или одно из его подклассов, если произошла ошибка при остановке сервера. |
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/data/experimental/service/DispatchServer