Spec-Zone.ru › TensorFlow

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 (координатора). Для некоторых сред выполнения, таких как облачные TPU, это значение может быть None, и бэкенд определит его по переменным среды TPU. Вы также можете настроить это значение через переменную среды KERAS_DISTRIBUTION_JOB_ADDRESSES.
num_processes Целое число. Количество рабочих процессов, которые образуют весь вычислительный кластер. Для некоторых сред выполнения, таких как облачные 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 job_addresses может быть дополнительно сокращен до просто адреса мастера/координатора, который является 10.0.0.1:1234.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API