如果我有张量的参考,有没有办法确定张量的变量范围?张量的.name
应该包含变量作用域名称,但是手动解析这看起来像是一个hacky变种。是否有更强大的方法来查找变量范围?谢谢!
答案 0 :(得分: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]