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


Python tf.Graph.name_scope用法及代码示例


用法

@tf_contextlib.contextmanager
name_scope(
    name
)

参数

  • name 范围的名称。

返回

  • name 安装为新名称范围的上下文管理器。

抛出

  • ValueError 如果 name 不是有效的范围名称,则根据上述规则。

返回为操作创建分层名称的上下文管理器。

图维护了一堆名称范围。 with name_scope(...): 语句在上下文的生命周期内将新名称压入堆栈。

name 参数将被解释如下:

  • 一个字符串(不以'/' 结尾)将创建一个新的名称范围,其中name 附加到上下文中创建的所有操作的前缀。如果以前使用过 name,则将通过调用 self.unique_name(name) 使其唯一。
  • 先前从 with g.name_scope(...) as scope: 语句捕获的范围将被视为 "absolute" 名称范围,这使得重新进入现有范围成为可能。
  • None 的值或空字符串会将当前名称范围重置为顶级(空)名称范围。

例如:

with tf.Graph().as_default() as g:
  c = tf.constant(5.0, name="c")
  assert c.op.name == "c"
  c_1 = tf.constant(6.0, name="c")
  assert c_1.op.name == "c_1"

  # Creates a scope called "nested"
  with g.name_scope("nested") as scope:
    nested_c = tf.constant(10.0, name="c")
    assert nested_c.op.name == "nested/c"

    # Creates a nested scope called "inner".
    with g.name_scope("inner"):
      nested_inner_c = tf.constant(20.0, name="c")
      assert nested_inner_c.op.name == "nested/inner/c"

    # Create a nested scope called "inner_1".
    with g.name_scope("inner"):
      nested_inner_1_c = tf.constant(30.0, name="c")
      assert nested_inner_1_c.op.name == "nested/inner_1/c"

      # Treats `scope` as an absolute name scope, and
      # switches to the "nested/" scope.
      with g.name_scope(scope):
        nested_d = tf.constant(40.0, name="d")
        assert nested_d.op.name == "nested/d"

        with g.name_scope(""):
          e = tf.constant(50.0, name="e")
          assert e.op.name == "e"

作用域本身的名称可以由 with g.name_scope(...) as scope: 捕获,它将作用域的名称存储在变量 scope 中。该值可用于命名操作,该操作表示在范围内执行操作的总体结果。例如:

inputs = tf.constant(...)
with g.name_scope('my_layer') as scope:
  weights = tf.Variable(..., name="weights")
  biases = tf.Variable(..., name="biases")
  affine = tf.matmul(inputs, weights) + biases
  output = tf.nn.relu(affine, name=scope)

注意:此构造函数验证给定的 name 。有效范围名称匹配以下正则表达式之一:

[A-Za-z0-9.][A-Za-z0-9_.\-/]* (for scopes at the root)
[A-Za-z0-9_.\-/]* (for other scopes)

相关用法


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