Spec-Zone.ru › TensorFlow 2.9

tf.distribute.cluster_resolver.TPUClusterResolver

Просмотреть исходный код на GitHub

Резольвер кластера для TPUs Google Cloud.

Наследуется от: ClusterResolver

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.distribute.cluster_resolver.TPUClusterResolver

tf.distribute.cluster_resolver.TPUClusterResolver(
    tpu=None,
    zone=None,
    project=None,
    job_name='worker',
    coordinator_name=None,
    coordinator_address=None,
    credentials='default',
    service=None,
    discovery_url=None
)

Это реализация резольверов кластеров для сервиса Google Cloud TPU.

TPUClusterResolver поддерживает следующие различные среды: Google Compute Engine Google Kubernetes Engine Внутренние среды Google

Он может быть передан в tf.distribute.TPUStrategy для поддержки обучения TF2 на Cloud TPUs.

Аргументы
tpu Строка, соответствующая TPU для использования. Это может быть имя TPU или адрес gRPC TPU-рабочего узла. Если не указано, будет попытка автоматического определения адреса TPU на Cloud TPUs. Если установлено значение «local», предполагается, что TPU подключен непосредственно к виртуальной машине, а не через сеть.
zone Зона расположения TPUs. Если опущено или пусто, предполагается, что зона TPU совпадает с зоной виртуальной машины GCE, которую мы попытаемся определить из сервиса метаданных GCE.
project Имя проекта GCP, содержащего Cloud TPUs. Если опущено или пусто, мы попытаемся определить имя проекта виртуальной машины GCE из сервиса метаданных GCE.
job_name Имя задачи TensorFlow, к которой принадлежат TPUs.
coordinator_name Имя для использования для координатора. Устанавливается в None, если координатор не должен быть включён в вычисленный ClusterSpec.
coordinator_address Адрес координатора (обычно пара ip:порт). Если установлено в None, будет запущен сервер TF. Если coordinator_name равно None, сервер TF не будет запущен, даже если coordinator_address равно None.
credentials Кредиты GCE. Если None, используются стандартные учетные данные из oauth2client
service Объект API GCE, возвращаемый функцией googleapiclient.discovery. Если вы указываете пользовательский объект сервиса, параметр credentials будет проигнорирован.
discovery_url Шаблон URL, указывающий на расположение сервиса discovery. Он должен иметь два параметра {api} и {apiVersion}, которые, при заполнении, создают абсолютный URL к документу discovery для этого сервиса. Переменная среды 'TPU_API_DISCOVERY_URL' переопределит это значение.
Исключения
ImportError Если googleapiclient не установлен.
ValueError Если TPUs не указаны.
RuntimeError Если указано пустое имя TPU и это выполняется в среде Google Cloud.
Атрибуты
environment Возвращает текущую среду, в которой выполняется TensorFlow.
task_id Возвращает идентификатор задачи данного ClusterResolver.

В среде TensorFlow распределенного типа каждая задача может иметь соответствующий идентификатор задачи, который представляет собой индекс экземпляра внутри типа задачи. Это полезно, когда пользователю необходимо выполнить определённый код в соответствии с индексом задачи. Например,

cluster_spec = tf.train.ClusterSpec({
    "ps": ["localhost:2222", "localhost:2223"],
    "worker": ["localhost:2224", "localhost:2225", "localhost:2226"]
})

# SimpleClusterResolver is used here for illustration; other cluster
# resolvers may be used for other source of task type/id.
simple_resolver = SimpleClusterResolver(cluster_spec, task_type="worker",
                                        task_id=0)

...

if cluster_resolver.task_type == 'worker' and cluster_resolver.task_id == 0:
  # Perform something that's only applicable on 'worker' type, id 0. This
  # block will run on this particular instance since we've specified this
  # task to be a 'worker', id 0 in above cluster resolver.
else:
  # Perform something that's only applicable on other ids. This block will
  # not run on this particular instance.

Возвращает None, если такая информация недоступна или не применима в текущей распределённой среде, например, при обучении с помощью tf.distribute.cluster_resolver.TPUClusterResolver.

Для получения дополнительной информации, пожалуйста, обратитесь к документации класса tf.distribute.cluster_resolver.ClusterResolver.

task_type Возвращает тип задачи данного ClusterResolver.

В среде TensorFlow распределенного типа каждая задача может иметь соответствующий тип задачи. Действительные типы задач в TensorFlow включают «chief» (рабочий узел с большей ответственностью), «worker» (обычный рабочий узел для обучения/оценки), «ps» (сервер параметров) или «evaluator» (валидатор, оценивающий контрольные точки для метрик).

См. Настройка многоузловой конфигурации для получения дополнительной информации о типах задач «chief» и «worker», которые чаще всего используются.

Доступ к такой информации полезен, когда пользователю нужно выполнить определенный код в соответствии с типами задач. Например,

cluster_spec = tf.train.ClusterSpec({
    "ps": ["localhost:2222", "localhost:2223"],
    "worker": ["localhost:2224", "localhost:2225", "localhost:2226"]
})

# SimpleClusterResolver is used here for illustration; other cluster
# resolvers may be used for other source of task type/id.
simple_resolver = SimpleClusterResolver(cluster_spec, task_type="worker",
                                        task_id=1)

...

if cluster_resolver.task_type == 'worker':
  # Perform something that's only applicable on workers. This block
  # will run on this particular instance since we've specified this task to
  # be a worker in above cluster resolver.
elif cluster_resolver.task_type == 'ps':
  # Perform something that's only applicable on parameter servers. This
  # block will not run on this particular instance.

Возвращает None, если такая информация недоступна или не применима в текущей распределённой среде, например, при обучении с помощью tf.distribute.experimental.TPUStrategy.

Для получения дополнительной информации, пожалуйста, обратитесь к документации класса tf.distribute.cluster_resolver.ClusterResolver.

tpu_hardware_feature Возвращает сохранённую информацию о топологии TPU.

Методы

cluster_spec

Просмотреть исходный код

cluster_spec()

Возвращает объект ClusterSpec, основанный на последней информации о TPU.

Мы получаем информацию из API GCE каждый раз, когда вызывается этот метод.

Возвращаемое значение
Объект ClusterSpec, содержащий информацию о хостах, полученную от Cloud TPUs, или None.
Исключения
RuntimeError Если предоставленный TPU неисправен.

connect

Просмотреть исходный код

@staticmethod
connect(
    tpu=None, zone=None, project=None
)

Инициализирует TPU и возвращает TPUClusterResolver.

Этот API подключится к удалённому кластеру TPU и инициализирует аппаратное обеспечение TPU. Пример использования:

resolver = tf.distribute.cluster_resolver.TPUClusterResolver.connect(
    tpu='')

Он может рассматриваться как удобная оболочка следующего кода:

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='')
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
Аргументы
tpu Строка, соответствующая TPU для использования. Это может быть имя TPU или адрес gRPC TPU-рабочего узла. Если не указано, будет попытка автоматического определения адреса TPU на Cloud TPUs.
zone Зона расположения TPUs. Если опущено или пусто, предполагается, что зона TPU совпадает с зоной виртуальной машины GCE, которую мы попытаемся определить из сервиса метаданных GCE.
project Имя проекта GCP, содержащего Cloud TPUs. Если опущено или пусто, мы попытаемся определить имя проекта виртуальной машины GCE из сервиса метаданных GCE.
Возвращаемое значение
Экземпляр объекта TPUClusterResolver.
Исключения
NotFoundError Если в режиме eager не обнаружено устройств TPU.

get_job_name

Просмотреть исходный код

get_job_name()

get_master

Просмотреть исходный код

get_master()

get_tpu_system_metadata

Просмотреть исходный код

get_tpu_system_metadata()

Возвращает метаданные системы TPU.

Пользователи могут вызвать этот метод, чтобы получить некоторые факты о системе TPU, такие как общее количество ядер, количество рабочих узлов TPU и устройства. Например:

resolver = tf.distribute.cluster_resolver.TPUClusterResolver(tpu='')
tpu_system_metadata = resolver.get_tpu_system_metadata()
num_hosts = tpu_system_metadata.num_hosts
Возвращаемое значение
Объект tf.tpu.experimental.TPUSystemMetadata.

master

Просмотреть исходный код

master(
    task_type=None, task_id=None, rpc_layer=None
)

Получить строку Master для использования в сессии.

В стандартном случае это возвращает путь gRPC (grpc://1.2.3.4:8470) первого экземпляра в ClusterSpec, возвращенном функцией cluster_spec.

Если при построении TPUClusterResolver используется имя, не относящееся к TPU, то оно возвращается вместо этого (например, если значение аргумента tpus при построении этого TPUClusterResolver было 'grpc://10.240.1.2:8470', то будет возвращено 'grpc://10.240.1.2:8470').

Аргументы
task_type (Необязательно, строка) Тип задачи TensorFlow для мастер-узла.
task_id (Необязательно, целое число) Индекс задачи TensorFlow для мастер-узла.
rpc_layer (Необязательно, строка) Протокол RPC, который TensorFlow должен использовать для связи с TPUs.
Возвращаемое значение
строка, строка подключения, используемая при создании сеанса.
Возможные исключения
ValueError Если ни одна из указанных TPU не существует.

num_accelerators

Просмотреть исходный код

num_accelerators(
    task_type=None, task_id=None, config_proto=None
)

Возвращает количество ядер TPU на рабочем узле.

Подключается к мастеру и перечисляет все устройства, присутствующие в мастер-узле, и подсчитывает их. Также проверяет, что количество устройств на хост в кластере одинаковое, прежде чем возвратить количество ядер TPU на хост.

Аргументы
task_type Не используется.
task_id Не используется.
config_proto Используется для создания подключения к мастер-узлу TPU для получения метаданных системы.
Возможные исключения
RuntimeError Если мы не можем связаться с рабочим узлом TPU после повторных попыток или если количество устройств TPU на хост отличается.

set_tpu_topology

Просмотреть исходный код

set_tpu_topology(
    serialized_tpu_topology
)

Устанавливает информацию о топологии tpu, хранящуюся в этом резолвере.

__enter__

Просмотреть исходный код

__enter__()

__exit__

Просмотреть исходный код

__exit__(
    type, value, traceback
)

© 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/versions/r2.9/api_docs/python/tf/distribute/cluster_resolver/TPUClusterResolver

Spec-Zone.ru

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