我一直在调查tensorflow docs以某种方式使用绝对名称检索变量,而不是相对于现有范围的相对名称
像get_variable_absolute
这样的东西会收到var的绝对路径(即:h1/Weights
而不是Weights
变量范围内的h1
这个问题的动机是对this problem的极度沮丧。
答案 0 :(得分:4)
我从TensorFlow深入阅读tutorial on Sharing Variables后找到了答案。
假设:
为此,您需要保存使用tf.variable_scope('h1')
创建的范围对象,以便在范围内使用它' foo'。
有些代码会更有说服力:
with tf.variable_scope('h1') as h1_scope: # we save the scope object in h1_scope
w = tf.get_variable('Weights', [])
with tf.variable_scope('foo'):
with tf.variable_scope(h1_scope, reuse=True): # get h1_scope back
w2 = tf.get_variable('Weights')
assert w == w2
结论:当您使用其python对象传递范围,而不仅仅是其名称时,您可以退出当前范围。