如果我正确理解variable_scope
,那么下面的代码会引发错误:
with tf.variable_scope('f', reuse=True):
slim.conv2d(x, 128, 7)
因为reuse
设置为True
。但事实并非如此。我也尝试过:
with tf.variable_scope('f', reuse=True):
slim.conv2d(x, 128, 7, scope='Conv', reuse=True)
只是为了确定它并没有抛出错误。
最后,我预计以下代码会抛出错误,因为reuse
设置为False
:
for i in range(2):
with tf.variable_scope('f', reuse=False):
slim.conv2d(x, 128, 7, reuse=False)
print map(lambda v: v.name, tf.get_collection(tf.GraphKeys.TRAINABLE_VARIABLES))
然而,它也没有抛出错误,它只创建了一组权重和偏差。
我是否误解了reuse
的预期行为?