0

爲了對我的論文進行實驗並基於TF中CNN的示例,我在Tensorflow中創建了另一個小型深度神經網絡非常像給出的例子,但在1d而不是Mnist)。Tensorflow:當使用random_normal和random_uniform數據作爲權重初始值設定項時,NN不進行訓練

問題是這個TF給出的例子用tf.truncated_normal數據初始化所有的權重變量,這使得NN訓練我的數據(損失減少+準確度增加)。然而,因爲我試圖從一篇科學論文中模擬一個神經網絡,所以我不得不使用從正態分佈中取得的值來初始化卷積層的權重(並且我使用了tf.random_normal,其stddev爲0.1),而完全連接的圖層權重與統一分佈的值(我使用tf.random_uniform)。結果是非常糟糕的,因爲我認爲並感覺到損失和準確性只是在一些小數字之間振盪(準確度在8%到14%之間,損失從2.51到2.54),但既不減少也不增加。

因爲我幾乎不熟悉這個框架,並且我不太清楚框架的工作方式,所以我詢問並且有人告訴我,每次迭代時,變量(我用作初始值設定項)都在總是重新啓動(並且這是tf.truncated_normal數據不會發生的),這就是爲什麼我的這兩種初始化類型的神經元永遠不會學習。如果這是真的,可以請人告訴我,我怎麼可能讓這些值只是用作初始化,而不是重複

我的代碼可以在這裏找到:https://github.com/dialgop/small_deep_nn/blob/master/Cnn_Model_Martin.ipynb

非常感謝的人誰可以幫助me

回答

1

實際上,您所觀察到的波動準確性是您的測試代碼中的輟學後果:輟學僅用於訓練階段,應在測試階段關閉,即保持概率爲1。準確性僅僅是由測試階段中輟學的隨機性引起的。

相關問題