2016-11-08 53 views
0

批量大小事。我正在訓練的模型如果在推斷

  • 5層很窄的CNN,
  • ,然後用5層的公路,
  • 則完全連接和
  • SOFTMAX過7班。

由於有7個均等分佈的類,隨機下注精度爲14%(1/7約爲14%)。 實際準確率爲40%。所以網絡有點學..

現在奇怪的是它只學習批量大小爲2的批量大小16,32或64根本不學習。

現在,甚至更奇怪的事情:如果我拿着訓練過的網的檢查點(準確性40%,以批量大小2進行訓練)並以32的批量大小開始,我應該繼續讓我的40%前幾步,對不對?當我在barch size 2上重新啓動時,我會這麼做。但是,對於bs 32的初始準確度,請猜測14%。

任何想法爲什麼批量大小會破壞推理?我擔心我可能在某處發生形狀錯誤,但我找不到任何東西。

THX對你的思念

+3

你是對的,它應該沒關係。看起來你必須有一個地方的錯誤。 – Aaron

+0

很難說沒有看到你的代碼的東西。你能否給我們提供你的實施? –

+0

是啊,我有一個bug。卷積查看跨批量。解析和模型學習和批量大小無關緊要。 – friesel

回答

0

這很難說,不看代碼,但我認爲,大批量導致梯度過大,訓練不能收斂。消除這種影響的一種方法是增加批量,但降低學習速度。您也可以嘗試剪裁漸變大小。

+1

我的困惑並不在於缺乏訓練的效果,而在於改變批量大小時訓練的推理準確性消失的事實。突然完全隨機。 – friesel

0

你應該看看你的模型收斂時的準確性,而不是當它還在訓練時。在訓練步驟中很難比較不同批次的效果,因爲他們可以獲得「幸運」並且遵循良好的梯度路徑。一般而言,較小的批量容易產生較大的噪音,可能會給您帶來好的峯值,並降低準確度。