如果我理解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
?