我使用tf.name_scope
创建相对名称范围。
如何获取当前的绝对名称范围?
从代码中看起来tf.get_default_graph()._name_stack
会给我这个但看起来像非官方的方式。有官方的方法吗? (我想不是,因此我做了upstream feature request。)
(我实施了一系列功能,例如get_current_name_scope()
或reuse_name_scope()
here。请注意,在混合tf.name_scope
和tf.variable_scope
时需要小心。)
答案 0 :(得分:13)
尽管golmschenk's answer完全正确,但要查看tf.contrib.framework.get_name_scope
的实现方式,可以看到当前名称范围在tf.Graph
的方法get_name_scope()
中可用:
tf.get_default_graph().get_name_scope()
或者,对于任何图表:
my_graph.get_name_scope()
答案 1 :(得分:5)
目前(2017-06-08)在master和r1.2中是tf.contrib.framework.get_name_scope
。
答案 2 :(得分:1)
示例:
import tensorflow as tf
with tf.name_scope("foo"):
with tf.name_scope("bar") as absolute:
print(absolute)
输出:
foo/bar/
编辑:
如果不访问封闭的上下文管理器,我不知道访问当前名称范围的特定函数。绕道小路可能如下:
import tensorflow as tf
with tf.name_scope("foo"):
with tf.name_scope("bar") as absolute:
print(tf.no_op(name='.').name[:-1])