tf.Variable()和tf.get_variable()的区别

时间:2018-10-08 12:21:27

标签: python tensorflow

我在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()创建的变量,可能存在隐式变量范围(未以变量名称显示)?

0 个答案:

没有答案