TensorFlow-获取张量的可变范围?

TensorFlow-获取张量的可变范围?,tensorflow,Tensorflow,如果我有一个对张量的引用,有没有办法确定张量的变量范围?张量的.name应该包含变量作用域名称,但是手动解析这似乎是一个有点麻烦的解决方法。有没有更可靠的方法来寻找变量范围?谢谢 名称作用域是一种有用的方法,可以在给定名称的作用域内为张量和运算符添加前缀,但它不是唯一的,甚至不是必需的。认为 with tf.variable_scope('foo'): x = tf.zeros((), name='bar') 及 结果是x具有相同的名称 甚至可以连接变量范围: with tf.vari

如果我有一个对张量的引用,有没有办法确定张量的变量范围?张量的
.name
应该包含变量作用域名称,但是手动解析这似乎是一个有点麻烦的解决方法。有没有更可靠的方法来寻找变量范围?谢谢

名称作用域是一种有用的方法,可以在给定名称的作用域内为张量和运算符添加前缀,但它不是唯一的,甚至不是必需的。认为

with tf.variable_scope('foo'):
    x = tf.zeros((), name='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]

我懂了。我正在寻找一种获得张量引用的变量范围的通用方法,这样我就可以随意地确定使用变量范围(…,reuse=True)进入哪个
,以重用相关变量。具体地说,根据contrib层的输出张量获取该层的权重。在这种情况下,使用类似路径的拆分可能会起作用。谢谢
os.path.split(x.name)[0]