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, и стратегия размещения выполняется по круговому циклу по всем задачам 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.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 job. Игнорируется, если указан cluster |
ps_device | Строка. Устройство задачи ps job. Если пусто, то задача ps job не используется. По умолчанию ps. |
worker_device | Строка. Устройство задачи worker job. Если пусто, то задача worker job не используется. |
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 предоставлен, но не является вызываемой функцией. |
© 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/compat/v1/train/replica_device_setter