在Tensorlfow中,我们可以使用True
将变量重用设置为tf.get_variable_scope().reuse_variables()
,是否可以在不离开范围的情况下将其设置回False?
答案 0 :(得分:3)
您可以做的是:
print tf.get_variable_scope().reuse
with tf.variable_scope(tf.get_variable_scope(), reuse=True):
print tf.get_variable_scope().reuse
# Code that reuse variables goes here
print tf.get_variable_scope().reuse
输出:
False
True
False
所以只需将代码部分放在with
。
答案 1 :(得分:2)
这是不可能的。在共享变量教程中,他们明确指出:
请注意,您不能将重用标志设置为False。这背后的原因是允许组成创建模型的函数。想象一下,你像以前一样编写了一个函数my_image_filter(inputs)。有人在具有reuse = True的变量范围内调用函数时,也会期望所有内部变量都被重用。允许在函数内部强制重用= False会破坏此契约,并且难以以这种方式共享参数
您必须退出范围并使用相同名称和reuse=False