簡體   English   中英

在Tensorflow中,相同的訓練數據和測試數據會導致神經網絡的輸出值不同

[英]Output values of neural network become different with same training data and test data in Tensorflow

我在Tensorflow(Python3.5)中建立了一個神經網絡模型。

但是,每當我初始化模型並使用相同的訓練數據進行再訓練時,特定輸入的輸出值總是不同的。 這意味着,使用相同的參數和數據訓練但初始化不同的模型可以預測相差很大的結果。 我認為,如果我使用相同的參數和數據進行訓練,則無論初始化如何,權重和偏差都會變得幾乎相同。

我更改了隱藏層的數量,學習率,激活功能和批處理大小,但此問題沒有改變。 在這種情況下我該怎么辦?

我的模型正在使用

25個標准化輸入 ,每個元素的范圍為[-1,1]
32個隱藏層 (1級)
10個輸出層 (我希望每個輸出值都應該在[-1,1]中,因為我訓練的獎勵是在[-1,1]中。)
Xavier初始化器
學習率= 0.00001 (我最近將其從0.001降低到0.00001)。
tanh函數用於激活功能
843,844訓練數據 (是否太小..?)
批處理大小為32 ,隊列大小為256 (隨機抽樣)

這實際上取決於您訓練網絡的時間,即使這樣,還是可能會出現一些不匹配的情況。

您是否總體上跟蹤了模型的性能? 您的模型甚至收斂了嗎? 您應該將TensorBoard集成到模型中以查看這些內容。

如果您的模型尚未收斂(即,您訓練的時間不夠長),或者總體上它的性能很差,那么您就有了答案。

另一方面,如果您的模型運行良好(我不認為您的問題聽起來如何),並且已經收斂到80%的准確性,那么仍然有可能獲得不同的值。 這是因為80%的准確性意味着您在其上測試的所有數據(而不是單個數據點)的80%。 因此,第一次嘗試可能會得到正確的數據點A和錯誤的點B,但是在第二次嘗試上,它們都被切換了,但是您仍然具有相同的准確性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM