Spec-Zone.ru › TensorFlow 2.4

tf.distribute.cluster_resolver.TPUClusterResolver

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

Резольвер кластера для 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
)

Это реализация резольверов кластеров для сервиса 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:port). Если установлено в 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' переопределит это значение.
Возбуждает исключения
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.

Методы

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_medata = resolver.get_tpu_system_metadata()
num_hosts = tpu_system_medata.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, возвращается это имя (например, если при создании TPUClusterResolver значение аргумента tpus было '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 на каждом узле отличается.

__enter__

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

__enter__()

__exit__

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

__exit__(
    type, value, traceback
)

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

Spec-Zone.ru

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