我在重用变量时有一个关于子作用域的问题。这
import tensorflow as tf
def make_bar():
with tf.variable_scope('bar'):
tf.get_variable('baz', ())
with tf.variable_scope('foo') as scope:
make_bar()
scope.reuse_variables()
make_bar()
工作得很好,只foo/bar/baz创建了一个变量。
但是,如果我更改make_bar为
def make_bar(scope=None):
with tf.variable_scope(scope, 'bar'):
tf.get_variable('baz', ())
代码现在失败了
ValueError: Variable foo/bar_1/baz does not exist
问题:为什么在使用default names时变量作用域重用会失败?如果是故意的,那么这个选择背后的理由是什么?
MM们
相关分类