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, так и в открытом исходном коде (например, 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 включают «главный» (worker, которому делегированы дополнительные обязанности), «рабочий» (обычный worker для обучения/оценки), «ps» (сервер параметров) или «evaluator» (evaluator, который оценивает контрольные точки для метрик).

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

Доступ к такой информации полезен, когда пользователю необходимо выполнить определенный код в соответствии с типами задач. Например,

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