2017-06-12 146 views
0

如果我有张量的参考,有没有办法确定张量的变量范围?张量的.name应该包含变量作用域名称,但是手动解析这个看起来有点像一个黑客的解决方法。有没有更强大的方法来找到变量范围?谢谢!TensorFlow - 获取张量的变量范围?

回答

2

名称范围是一个有用的意思,用给定名称作为范围中的张量和运算符的前缀,但它不是唯一的,甚至不是必需的。考虑到具有相同名称的

with tf.variable_scope('foo'): 
    x = tf.zeros((), name='bar') 

x = tf.zeros((), name='foo/bar') 

结果x

可变范围甚至可以被连接起来:

with tf.variable_scope('foo'): 
    with tf.variable_scope('bar'): 
     x = tf.zeros((), name='qux') 

如此发言的“该”的x可变范围具有更少感。

但请注意,这些名称的路径性质使其适用于os.path(即使在Windows上)。例如,要获得张量名称的“路径”部分(可能是您要查找的“变量范围”),您可以使用

os.path.split(x.name)[0] 
+0

我明白了。我正在寻找一种通用的方法来获取张量引用的变量范围,以便我可以决定使用variable_scope(...,reuse = True)来重用* related *变量。具体来说,根据该图层的输出张量获取一个贡献层的权重。在这种情况下使用像分裂这样的路径可能会起作用。谢谢! –