我正在使用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:"
答案 0 :(得分:0)
这可能是因为您在每个时期都初始化了变量,所以换句话说,错误的意思是:您要共享此变量还是要重新声明它? 由于所需的行为尚不清楚(创建新变量还是重用现有变量?),TensorFlow将失败。 如果您确实想共享变量,则只需更改以下行即可:
conv_w = tf.get_variable('conv/W', initializer=tf.constant_initializer(conv_W[0]),reuse=True)
否则设置reuse=False
,这将解决您的问题。
有关如何共享/取消共享变量的更多信息,请参见Tensorflow documentation: