当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.distribute.get_replica_context用法及代码示例


返回当前的 tf.distribute.ReplicaContextNone

用法

tf.distribute.get_replica_context()

返回

  • 目前的tf.distribute.ReplicaContext在副本上下文范围内时的对象,否则None.

    在一个特定的块中,这两种情况中的一种将是正确的:

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

如果在 cross-replica 上下文中,则返回 None

注意执行:

  1. 在默认 (single-replica) 副本上下文中启动(此函数将返回默认的 ReplicaContext 对象);
  2. 进入 with tf.distribute.Strategy.scope(): 块时切换到 cross-replica 上下文(在这种情况下,这将返回 None );
  3. 切换到 strategy.run(fn, ...) 内的(非默认)副本上下文;
  4. 如果 fn 调用 get_replica_context().merge_call(merge_fn, ...) ,那么在 merge_fn 中,您将返回 cross-replica 上下文(此函数将再次返回 None )。

大多数tf.distribute.Strategy 方法只能在cross-replica 上下文中执行,在副本上下文中,您应该改用此方法返回的tf.distribute.ReplicaContext 对象的API。

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)

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.distribute.get_replica_context。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。