用法
@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)
相關用法
- Python tf.Graph.control_dependencies用法及代碼示例
- Python tf.Graph.container用法及代碼示例
- Python tf.Graph.as_default用法及代碼示例
- Python tf.Graph.device用法及代碼示例
- Python tf.Graph.get_name_scope用法及代碼示例
- Python tf.Graph.gradient_override_map用法及代碼示例
- Python tf.Graph.colocate_with用法及代碼示例
- Python tf.Graph用法及代碼示例
- Python tf.GradientTape用法及代碼示例
- Python tf.GradientTape.jacobian用法及代碼示例
- Python tf.GradientTape.reset用法及代碼示例
- Python tf.GradientTape.batch_jacobian用法及代碼示例
- Python tf.GradientTape.stop_recording用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代碼示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代碼示例
- Python tf.compat.v1.data.TFRecordDataset.interleave用法及代碼示例
- Python tf.summary.scalar用法及代碼示例
- Python tf.linalg.LinearOperatorFullMatrix.matvec用法及代碼示例
- Python tf.linalg.LinearOperatorToeplitz.solve用法及代碼示例
- Python tf.raw_ops.TPUReplicatedInput用法及代碼示例
注:本文由純淨天空篩選整理自tensorflow.org大神的英文原創作品 tf.Graph.name_scope。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。