tf.distribute.get_replica_context
Возвращает текущий объект tf.distribute.ReplicaContext или None.
tf.distribute.get_replica_context()
Возвращает None, если выполняется в межрепличном контексте.
Обратите внимание на выполнение:
- начинается в контексте реплики по умолчанию (с одной репликой) (эта функция возвращает объект
ReplicaContextпо умолчанию); - переключается в межрепличный контекст (в этом случае возвращается
None) при входе в блокwith tf.distribute.Strategy.scope():; - переключается в контекст реплики (не по умолчанию) внутри
strategy.run(fn, ...); - если
fnвызываетget_replica_context().merge_call(merge_fn, ...), то внутриmerge_fnвы снова возвращаетесь в межрепличный контекст (и эта функция снова возвращаетNone).
Большинство методов tf.distribute.Strategy можно выполнять только в межрепличном контексте; в контексте реплики следует использовать API объекта tf.distribute.ReplicaContext, возвращаемого этим методом.
assert tf.distribute.get_replica_context() is not None # default
with strategy.scope():
assert tf.distribute.get_replica_context() is None
def f():
replica_context = tf.distribute.get_replica_context() # for strategy
assert replica_context is not None
tf.print("Replica id: ", replica_context.replica_id_in_sync_group,
" of ", replica_context.num_replicas_in_sync)
strategy.run(f)
| Возвращает | |
|---|---|
Текущий объект tf.distribute.ReplicaContext, если выполняется в области контекста реплики, иначе None. Внутри определённого блока истинно ровно одно из следующих условий:
|
© 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/get_replica_context