用法
@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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。