卷積神經網路/CNN/深度學習在做分類訓練時不收斂的解決方案
阿新 • • 發佈:2018-12-26
1.背景介紹
訓練網路的過程就是網路學習影象特徵的過程,正所謂網路好用但是不好訓練,我算是真真切切的體會到了.之前訓練手寫漢字的時候,大概就花費了1個多小時,之前訓練幾十個分類的字元也耗費了很長的時間,逐漸讓我我點怕訓練了,不過今天,我好像找到了問題的解決方法,雖然不一定對每個人有用吧,但是的的確確省了太多的時間.用圖說話
今天打算訓練一個cnn分類這39類圖片,
**
他們大概長這個樣子
**
200*100的大小,一共1300個.
,
用GPU加速訓練了一個多小時, 幾百個 Epoch ,幾千個Iteration. 還沒有收斂,準確率依然30%…
我靈機一動更改了圖的大小!!!,
我靈機一動更改了圖的大小!!!,
我靈機一動更改了圖的大小!!!,
重要的話就多說幾遍…!!!
更改後的圖長這樣,64*32的,
然後奇蹟就發生了,訓練曲線程式設計下面的了,50多個Epoch就訓練完了
把log貼出來
Initializing image normalization. |=========================================================================================| | Epoch | Iteration | Time Elapsed | Mini-batch | Mini-batch | Base Learning| | | | (seconds) | Loss | Accuracy | Rate | |=========================================================================================| | 1 | 1 | 0.22 | 3.7880 | 0.78% | 1.00e-04 | | 9 | 50 | 4.82 | 1.4279 | 66.41% | 1.00e-04 | | 17 | 100 | 9.14 | 0.0666 | 97.66% | 1.00e-04 | | 25 | 150 | 13.44 | 0.0342 | 99.22% | 1.00e-04 | | 34 | 200 | 17.77 | 0.0114 | 100.00% | 1.00e-04 | | 42 | 250 | 22.07 | 0.0103 | 100.00% | 1.00e-04 | | 50 | 300 | 26.37 | 0.0116 | 100.00% | 1.00e-04 | |=========================================================================================| accuracy = 0.9764
你沒有看錯,以前1個多小時完成的事情,現在26.37秒完成了,並且accuracy =0.97,
並且
% trainingNumFiles 訓練集和測試集的比例,
trainingNumFiles = 0.7;
測試集和訓練集的比例還是3:7
所以,我的流水賬帳記完了,我也不知道我說的是啥,有需要的人應該可以懂.哈哈…
歸結為一句話就是:訓練神經網路的時候,如果不收斂你可以改變一下影象的大小,很有可能事半功萬倍