當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。