2017-09-26 85 views
0
def trainx(x): 
    train = tf.train.GradientDescentOptimizer(x).minimize(error) 
    return train 

with tf.Session() as sess: 
    for i in [0.01,0.02,0.03, 0.04]: # 
     merge = tf.summary.merge_all() 
     tf.global_variables_initializer().run() 



     writter = tf.summary.FileWriter('4004/'+str(i), sess.graph) 

     for i1 in range(100): 

      error_sum = sess.run(merge, {x:inp, y:out}) 
      writter.add_summary(error_sum, i1) 
      sess.run(trainx(i), {x:inp, y:out}) 

只是通過你的代碼的一部分,使事情更簡單。 請看圖片波紋管:是在tensorflow中爲每次迭代/運行生成的新權重?

enter image description here

如果你看到紅線約0.370和藍色開始於大約0.310。這是否意味着,張量流中的所有運行的初始重量都不相同?因爲如果是這樣的話,考慮到梯度下降在錯誤/損失函數之後應用,所有線將從同一點開始。我認爲每次迭代都會產生新的權重,這不是我正在尋找的。我怎麼能解決這個問題?將不勝感激。

+0

不同的線代表什麼? – Engineero

+0

@Engineero哦,它是一層網絡的丟失/錯誤功能......沒什麼特別的。 –

+0

循環內的'trainx(i)'將在每次迭代中創建一個新的'tf.train.GradientDescentOptimizer'(帶*線性增加學習速率*)。這不可能達到預期的結果。相反,創建一個優化器並在循環外部調用'minim()',並在循環內重用該訓練操作。 – mrry

回答

相關問題