ValueError:变量conv / W已存在,不允许使用

时间:2018-09-29 06:59:24

标签: python tensorflow

我正在使用TensorFlow并遇到错误。我想使用"conv_W[0]"来初始化"conv/W",它们具有[3,3,192,32]的相同形状。我的代码如下:

def convolutional(X,reuse = reuse):
    with tf.variable_scope(scope or 'conv', reuse=reuse):
        W = tf.get_variable("W", shape=[3,3,192,32])  
----------------------------------------------------------------------

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    sess.run(tf.local_variables_initializer())
    conv_w = tf.get_variable('conv/W', initializer=tf.constant_initializer(conv_W[0]))

错误为"ValueError: Variable conv/W already exists, disallowed.Did you mean to set reuse=True in VarScope? Originally defined at:"

1 个答案:

答案 0 :(得分:0)

这可能是因为您在每个时期都初始化了变量,所以换句话说,错误的意思是:您要共享此变量还是要重新声明它? 由于所需的行为尚不清楚(创建新变量还是重用现有变量?),TensorFlow将失败。 如果您确实想共享变量,则只需更改以下行即可:

conv_w = tf.get_variable('conv/W', initializer=tf.constant_initializer(conv_W[0]),reuse=True)

否则设置reuse=False,这将解决您的问题。

有关如何共享/取消共享变量的更多信息,请参见Tensorflow documentation