在张量流示例cifar10中,在我再次使用reuse = True添加一个推理后,损失值会发生变化。
最初:
2016-11-13 06:08:04.936044: step 0, loss = 4.68 (6.5 examples/sec;
19.787 sec/batch)
我改变后:
2016-11-13 06:00:50.400917: step 0, loss = 7.05 (6.4 examples/sec; 20.109 sec/batch)
我不明白为什么。我所做的所有更改如下,
1)在cifar10_train.py
中,我添加了一行
logits = cifar10.inference(images, reuse = False)
logits2 = cifar10.inference(images, reuse=True)
2)在cifar10.py
中,我向inference()
def inference(images, reuse):
with tf.variable_scope('conv1', reuse) as scope:
......
然后我发现损失值非常不同。
最初:
2016-11-13 06:08:04.936044: step 0, loss = 4.68 (6.5 examples/sec; 19.787 sec/batch)
我改变后:
2016-11-13 06:00:50.400917: step 0, loss = 7.05 (6.4 examples/sec; 20.109 sec/batch)
为什么会这样?
答案 0 :(得分:0)
参数重用是真意味着logits和logits2使用相同的模型来获取它们的输出,如果重用是False,logits和logits2来自不同的模型 有关了解我所说内容的更多信息,您可以观看:https://www.tensorflow.org/programmers_guide/variable_scope