此页面由 Cloud Translation API 翻译。
Switch to English

tf.distribute.get_replica_context

TensorFlow 1版 GitHub上查看源代码

返回当前tf.distribute.ReplicaContextNone

用在笔记本电脑

使用的指南

返回None如果在跨副本背景。

需要注意的是执行:

  1. 开始在缺省(单复制品)复制品上下文(这个函数将返回默认ReplicaContext对象);
  2. 切换到横复制品上下文(在这种情况下,这将返回None )进入时with tf.distribute.Strategy.scope():块;
  3. 切换到一个(非默认)复制品上下文内strategy.run(fn, ...) ;
  4. 如果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

在一个特定的块,这两件事情只有一个为真:

  • get_replica_context()返回非None ,或
  • tf.distribute.is_cross_replica_context()返回True。