我在Tensorflow中有以下代码行:
y = tf.Variable(name='y', initial_value=[1.0])
y = tf.get_variable(name='y', initializer=[1.0]
with tf.variable_scope(tf.get_variable_scope(), reuse=True):
y = tf.get_variable(name='y', initializer=[1.0])
第一行创建<tf.Variable 'y:0'>
。第二行创建<tf.Variable 'y_1:0'>
。最后几行不创建变量,而仅重用<tf.Variable 'y_1:0'>
。
此外,以下代码行会导致ValueError消息:
with tf.variable_scope(tf.get_variable_scope(), reuse=True):
y = tf.get_variable(name='y_1', initializer=[1.0])
Tensorflow如何确定应重用<tf.Variable 'y_1:0'>
而不是<tf.Variable 'y:0'>
? Tensorflow如何存储有关变量创建方式的信息?导致创建的变量名称似乎与此无关。
编辑:主要问题是Tensorflow在上面的示例中如何理解应该重用后一个变量<tf.Variable 'y_1:0'>
而不是前一个变量?我没有在此处指定变量范围-因此,对于使用tf.get_variable()
创建的变量,可能存在隐式变量范围(未以变量名称显示)?