如何在Tensorflow中将变量重用设置回False?

时间:2016-06-19 23:56:22

标签: tensorflow

在Tensorlfow中,我们可以使用True将变量重用设置为tf.get_variable_scope().reuse_variables(),是否可以在不离开范围的情况下将其设置回False?

2 个答案:

答案 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

打开另一个范围