Spec-Zone.ru › TensorFlow 2.3

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.
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, то будет возвращено это имя (например, если значение аргумента 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 на каждом узле отличается.

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

Spec-Zone.ru

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