Spec-Zone.ru › TensorFlow

tf.distribute.cluster_resolver.GCEClusterResolver

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, так и в мире ПО с открытым исходным кодом (например, ClusterResolver для TPU или аналогичный), необходимо возвращать соответствующую строку в зависимости от среды, которую потребуется определить.

Если же вы реализуете 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), доступных на каждом рабочем узле.

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

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

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

Spec-Zone.ru

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