tf.keras.distribution.initialize
Инициализирует систему распределения для многосерверной/многопроцессной среды.
tf.keras.distribution.initialize(
job_addresses=None, num_processes=None, process_id=None
)
Вызов initialize подготовит бэкенд к выполнению на нескольких GPU или TPU. Его следует вызывать до начала любых вычислений.
Обратите внимание, что параметры также можно передавать через переменные среды, настройку которых при запуске может удобнее выполнять запускающий скрипт. Для некоторых бэкендов, которые также используют переменные среды для настройки, Keras корректно передаст их дальше.
| Аргументы | |
|---|---|
job_addresses | строка. IP-адреса всех задач, разделённые запятыми, которые образуют весь вычислительный кластер. Обратите внимание, что для бэкенда JAX требуется только адрес задачи 0 (координатора). Для некоторых сред выполнения, например Cloud TPU, это значение может быть None, и бэкенд определит его по переменным среды TPU. Это значение также можно настроить с помощью переменной среды KERAS_DISTRIBUTION_JOB_ADDRESSES. |
num_processes | целое число. Количество рабочих процессов/процессов, которые образуют весь вычислительный кластер. Для некоторых сред выполнения, например Cloud TPU, это значение может быть None, и бэкенд определит его по переменным среды TPU. Это значение также можно настроить с помощью переменной среды KERAS_DISTRIBUTION_NUM_PROCESSES. |
process_id | целое число. Идентификатор текущего рабочего процесса/процесса. Значение должно находиться в диапазоне от 0 до num_processes - 1. 0 указывает, что текущий рабочий процесс/процесс является главным/координирующим. Это значение также можно настроить с помощью переменной среды KERAS_DISTRIBUTION_PROCESS_ID. |
Example | Предположим, что есть два процесса GPU: процесс 0 запущен по адресу 10.0.0.1:1234, а процесс 1 — по адресу 10.0.0.2:2345. Чтобы настроить такой кластер, выполните следующие команды В процессе 0: keras.distribute.initialize(
job_addresses="10.0.0.1:1234,10.0.0.2:2345",
num_processes=2,
process_id=0)
В процессе 1: keras.distribute.initialize(
job_addresses="10.0.0.1:1234,10.0.0.2:2345",
num_processes=2,
process_id=1)
или используйте переменные среды: в процессе 0: os.environ[
"KERAS_DISTRIBUTION_JOB_ADDRESSES"] = "10.0.0.1:1234,10.0.0.2:2345"
os.environ["KERAS_DISTRIBUTION_NUM_PROCESSES"] = "2
os.environ["KERAS_DISTRIBUTION_PROCESS_ID"] = "0"
keras.distribute.initialize()
В процессе 1: os.environ[
"KERAS_DISTRIBUTION_JOB_ADDRESSES"] = "10.0.0.1:1234,10.0.0.2:2345"
os.environ["KERAS_DISTRIBUTION_NUM_PROCESSES"] = "2
os.environ["KERAS_DISTRIBUTION_PROCESS_ID"] = "1"
keras.distribute.initialize()
Также обратите внимание, что для бэкенда JAX значение |
© 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/keras/distribution/initialize