Spec-Zone.ru › TensorFlow

tf.compat.v1.train.replica_device_setter

Возвращает device function для использования при построении графа для реплик.

tf.compat.v1.train.replica_device_setter(
    ps_tasks=0,
    ps_device='/job:ps',
    worker_device='/job:worker',
    merge_devices=True,
    cluster=None,
    ps_ops=None,
    ps_strategy=None
)

Функции устройств используются в инструкции with tf.device(device_function): для автоматического назначения устройств объектам Operation по мере их создания. Ограничения устройств добавляются сначала из самого внутреннего контекста, затем переходят к внешним. При объединении ограничения добавляются только для полей, которые ещё не заданы во внутреннем контексте. В настоящее время это поля (job, task, cpu/gpu).

Если cluster — None, а ps_tasks равен 0, возвращаемая функция ничего не делает. В противном случае значение ps_tasks определяется на основе cluster.

По умолчанию на задачи ps размещаются только операции Variable, а стратегия размещения выполняет циклический перебор всех задач ps. Для более интеллектуального размещения можно использовать пользовательскую ps_strategy, например tf.contrib.training.GreedyLoadBalancingStrategy.

Например,

# To build a cluster with two ps jobs on hosts ps0 and ps1, and 3 worker
# jobs on hosts worker0, worker1 and worker2.
cluster_spec = {
    "ps": ["ps0:2222", "ps1:2222"],
    "worker": ["worker0:2222", "worker1:2222", "worker2:2222"]}
with
tf.compat.v1.device(tf.compat.v1.train.replica_device_setter(cluster=cluster_spec)):
  # Build your graph
  v1 = tf.Variable(...)  # assigned to /job:ps/task:0
  v2 = tf.Variable(...)  # assigned to /job:ps/task:1
  v3 = tf.Variable(...)  # assigned to /job:ps/task:0
# Run compute
Аргументы
ps_tasks Количество задач в задании ps. Игнорируется, если указан cluster.
ps_device Строка. Устройство задания ps. Если строка пуста, задание ps не используется. По умолчанию — ps.
worker_device Строка. Устройство задания worker. Если строка пуста, задание worker не используется.
merge_devices Boolean. Если True, объединяет ограничения или задаёт устройство, только если ограничение устройства совсем не задано. Объединяет спецификации устройств, а не переопределяет их.
cluster Протокол ClusterDef или ClusterSpec.
ps_ops Список строк, представляющих типы Operation, которые необходимо размещать на устройствах ps. Если None, по умолчанию используется STANDARD_PS_OPS.
ps_strategy Вызываемый объект, вызываемый для каждого ps-Operation (то есть соответствующего ps_ops), который принимает Operation и возвращает индекс задачи ps для использования. Если None, по умолчанию используется стратегия циклического перебора всех устройств ps.
Возвращает
Функцию, которую нужно передать в tf.device().
Вызывает исключения
TypeError, если cluster не является словарём или буфером протокола ClusterDef, либо если ps_strategy задан, но не является вызываемым объектом.

© 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/compat/v1/train/replica_device_setter

Spec-Zone.ru

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