Spec-Zone.ru › TensorFlow 2.3

tf.distribute.cluster_resolver.GCEClusterResolver

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

ClusterResolver для Google Compute Engine.

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

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

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

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

tf.compat.v1.distribute.cluster_resolver.GCEClusterResolver

tf.distribute.cluster_resolver.GCEClusterResolver(
    project, zone, instance_group, port, task_type='worker', task_id=0,
    rpc_layer='grpc', credentials='default', service=None
)

Это реализация резолверов кластеров для платформы групп экземпляров Google Compute Engine. Указав проект, зону и группу экземпляров, это позволит получить IP-адреса всех экземпляров в группе экземпляров и вернуть объект ClusterResolver, подходящий для использования для распределённого TensorFlow.

Примечание: этот резолвер кластера не может получить task_type, task_id или rpc_layer. Для использования его с некоторыми стратегиями распределения, такими как tf.distribute.experimental.MultiWorkerMirroredStrategy, вам необходимо указать task_type и task_id в конструкторе.

Пример использования с tf.distribute.Strategy:

# On worker 0
cluster_resolver = GCEClusterResolver("my-project", "us-west1",
                                      "my-instance-group",
                                      task_type="worker", task_id=0)
strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy(
    cluster_resolver=cluster_resolver)

# On worker 1
cluster_resolver = GCEClusterResolver("my-project", "us-west1",
                                      "my-instance-group",
                                      task_type="worker", task_id=1)
strategy = tf.distribute.experimental.MultiWorkerMirroredStrategy(
    cluster_resolver=cluster_resolver)
Аргументы
project Название проекта GCE.
zone Зона группы экземпляров GCE.
instance_group Название группы экземпляров GCE.
port Порт прослушивания сервера TensorFlow (по умолчанию: 8470)
task_type Название задачи TensorFlow, к которой относится эта группа экземпляров виртуальных машин GCE.
task_id Индекс задачи для данной виртуальной машины в группе экземпляров GCE. В частности, каждой отдельной виртуальной машине должна быть вручную назначена уникальная порядковая позиция в группе экземпляров, чтобы их можно было отличить друг от друга.
rpc_layer Слой RPC, который TensorFlow должен использовать для взаимодействия между экземплярами.
credentials Учётные данные GCE. Если ничего не указано, по умолчанию используется GoogleCredentials.get_application_default().
service Объект API GCE, возвращаемый функцией googleapiclient.discovery. (По умолчанию: discovery.build('compute', 'v1')). Если вы указываете пользовательский объект сервиса, то параметр credentials будет игнорироваться.
Исключения
ImportError Если googleapiclient не установлен.
Атрибуты
environment Возвращает текущую среду, в которой запущена TensorFlow.

Возможны два возвращаемых значения: «google» (если TensorFlow запущен в внутренней среде Google) или пустая строка (если TensorFlow запущен в другом месте).

Если вы реализуете ClusterResolver, который работает как в среде Google, так и в открытой среде (например, TPU ClusterResolver или аналогичный), вам нужно вернуть соответствующую строку в зависимости от среды, которую вы должны определить.

В противном случае, если вы реализуете ClusterResolver, который будет работать только в открытом TensorFlow, вам не нужно реализовывать это свойство.

rpc_layer
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 на основе последней информации о группе экземпляров.

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

Возвращаемое значение
Объект ClusterSpec, содержащий информацию о хостах, полученную из GCE.

master

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

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

Получает имя или URL сеансового мастера.

Примечание: это полезно только для TensorFlow 1.x.
Аргументы
task_type (Необязательно) Тип задачи TensorFlow мастера.
task_id (Необязательно) Индекс задачи TensorFlow мастера.
rpc_layer (Необязательно) Протокол RPC для данного кластера.
Возвращаемое значение
Имя или URL сеансового мастера.

Реализаторы этой функции должны позаботиться о том, чтобы возвращаемый мастер был актуальным на момент вызова этой функции. Это обычно означает получение мастера каждый раз при вызове этой функции.

num_accelerators

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

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

Возвращает количество ускорителей на сервер.

Это возвращает количество ускорителей (например, GPU и TPU) на сервер.

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

Аргументы
task_type (Необязательно) Тип задачи TensorFlow машины, которую мы хотим запросить.
task_id (Необязательно) Индекс задачи TensorFlow машины, которую мы хотим запросить.
config_proto (Необязательно) Настройки для запуска нового сеанса для запроса количества ускорителей.
Возвращаемое значение
Карта типов ускорителей на количество ядер.

© 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/GCEClusterResolver

Spec-Zone.ru

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