2016-11-13 30 views
0

在張量流示例cifar10中,損失值在我爲圖重新添加= True的情況下再添加一個推理後發生變化。爲什麼損失在添加額外推理後重新更改值= 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

您是否嘗試過多次運行代碼?這是否每次都發生?深度學習中的許多訓練算法都是隨機的。 – sygi

+0

你使用tensorflow r0.11嗎?如果你真的只改變了那一行,那麼_really_不應該改變任何東西,作爲[tf.variable_scope]的第二個參數(https://www.tensorflow.org/versions/r0.11/api_docs/python/state_ops。 html#variable_scope)是'default_name'(改變重用你會做'tf.variable_scope('conv1',reuse = reuse)') – sygi

+1

這個問題總是可以被重現的。 – anna

回答

相關問題