tf.data.experimental.service.WorkerServer
Сервер обработчика tf.data в одном процессе.
tf.data.experimental.service.WorkerServer(
port, dispatcher_address, worker_address=None, protocol=None, start=True
)
A tf.data.experimental.service.WorkerServer выполняет обработку tf.data.Dataset для настраиваемых пользователем наборов данных и предоставляет результирующие элементы через RPC. Обработчик связан с одним tf.data.experimental.service.DispatchServer.
dispatcher = tf.data.experimental.service.DispatchServer(port=0)
dispatcher_address = dispatcher.target.split("://")[1]
worker = tf.data.experimental.service.WorkerServer(
port=0, 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(), чтобы заблокировать выполнение бесконечно после запуска сервера.
worker = tf.data.experimental.service.WorkerServer(
port=5051, dispatcher_address="grpc://localhost:5050")
worker.join()
| Аргументы | |
|---|---|
port | Указывает порт для привязки. Значение 0 означает, что обработчик может привязаться к любому доступному порту. |
dispatcher_address | Указывает адрес диспетчера. |
worker_address | (Необязательно.) Указывает адрес сервера обработчика. Этот адрес передаётся диспетчеру, чтобы диспетчер мог сообщить клиентам, как подключиться к этому обработчику. По умолчанию "localhost:%port%", где %port% будет заменено используемым обработчиком портом. |
protocol | (Необязательно.) Указывает протокол, который будет использовать сервер. Допустимые значения включают "grpc", "grpc+local". По умолчанию "grpc". |
start | (Необязательно.) Логическое значение, указывающее, нужно ли запускать сервер после его создания. По умолчанию True. |
| Исключения | |
|---|---|
tf.errors.OpError | Или один из его подклассов, если при создании сервера TensorFlow произошла ошибка. |
Методы
join
join()
Блокирует выполнение до завершения работы сервера.
Это полезно при запуске отдельного процесса обработчика.
worker_server = tf.data.experimental.service.WorkerServer(
port=5051, dispatcher_address="grpc://localhost:5050")
worker_server.join()
В настоящее время этот метод блокирует выполнение навсегда.
| Исключения | |
|---|---|
tf.errors.OpError | Или один из его подклассов, если при присоединении к серверу произошла ошибка. |
start
start()
Запускает этот сервер.
| Исключения | |
|---|---|
tf.errors.OpError | Или один из его подклассов, если при запуске сервера произошла ошибка. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.3/api_docs/python/tf/data/experimental/service/WorkerServer