Spec-Zone.ru › TensorFlow

tf.distribute.cluster_resolver.TPUClusterResolver

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

Наследуется от: 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
)

Используется в ноутбуках

Используется в руководстве Используется в учебниках
  • Миграция с TPU embedding_columns на слой TPUEmbedding
  • Миграция с TPUEstimator на TPUStrategy
  • Использование TPUs
  • Обучение с помощью Orbit
  • Классификация изображений с помощью Model Garden
  • Сегментация экземпляров с помощью Model Garden
  • Обнаружение объектов с помощью Model Garden
  • Семантическая сегментация с помощью Model Garden

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

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

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

Args
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, указывающий на расположение сервиса открытия документов. Он должен содержать два параметра {api} и {apiVersion}, которые при заполнении создают абсолютный URL-адрес для документа открытия документа для этого сервиса. Переменная среды 'TPU_API_DISCOVERY_URL' переопределит этот параметр.
Raises
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.
Raises
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)
Args
tpu Строка, соответствующая TPU для использования. Может быть именем TPU или gRPC-адресом TPU-рабочего узла. Если не задано, будет попытка автоматического определения адреса TPU на Cloud TPUs.
zone Зона размещения TPUs. Если опущено или пусто, предполагается, что зона TPU совпадает с зоной виртуальной машины GCE, которую мы попытаемся определить из сервиса метаданных GCE.
project Имя проекта GCP, содержащего Cloud TPUs. Если опущено или пусто, мы попытаемся определить имя проекта виртуальной машины GCE из сервиса метаданных GCE.
Возвращает
Экземпляр объекта TPUClusterResolver.
Raises
NotFoundError Если в режиме eager не найдены устройства TPU.

get_coordination_service_leader

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

get_coordination_service_leader()

Возвращает расположение сервиса координации.

Сервис координации должен находиться на TPU worker0.

Возвращает
Строка, указывающая путь расположения.

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 должен использовать для связи с TPU.
Возвращает
Строка, строка подключения для создания сеанса.
Исключения
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/api_docs/python/tf/distribute/cluster_resolver/TPUClusterResolver

Spec-Zone.ru

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