tf.distribute.cluster_resolver.TPUClusterResolver
| Просмотреть исходный код на GitHub |
Резольвер кластера для Google Cloud TPUs.
Наследуется от: ClusterResolver
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. Поскольку Cloud TPUs находятся в стадии альфа-версии, вам необходимо указать файл определения API, а также список Cloud TPUs в вашем проекте Google Cloud Platform.
TPUClusterResolver поддерживает следующие различные среды: Google Compute Engine Google Kubernetes Engine Внутренняя среда Google
| Аргументы | |
|---|---|
tpu | Строка, соответствующая TPU для использования. Если строка пустая, строка 'local' или строка, начинающаяся с 'grpc://' или '/bns', то предполагается, что она не соответствует Cloud TPU, и вместо этого она будет передана в качестве сессионного мастера, и распространение ClusterSpec не будет выполнено. В будущем это может также поддерживать список строк, когда используются несколько Cloud TPUs. |
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' переопределит это значение. |
| Возбуждает исключения | |
|---|---|
ImportError | Если googleapiclient не установлен. |
ValueError | Если TPUs не указаны. |
RuntimeError | Если указано пустое имя TPU и это выполняется в среде Google Cloud. |
| Атрибуты | |
|---|---|
environment | Возвращает текущую среду, в которой выполняется TensorFlow. |
Методы
cluster_spec
cluster_spec()
Возвращает объект ClusterSpec, основанный на последней информации о TPU.
Мы получаем информацию из API GCE каждый раз, когда вызывается этот метод.
| Возвращает | |
|---|---|
| Объект ClusterSpec, содержащий информацию о хостах, полученную от Cloud TPUs, или None. |
| Возбуждает исключения | |
|---|---|
RuntimeError | Если предоставленный TPU неисправен. |
get_job_name
get_job_name()
get_master
get_master()
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 | Если ни один из указанных TPUs не существует. |
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 на хосте отличается. |
© 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/r1.15/api_docs/python/tf/distribute/cluster_resolver/TPUClusterResolver