1. 程式人生 > >卷積神經網路/CNN/深度學習在做分類訓練時不收斂的解決方案

卷積神經網路/CNN/深度學習在做分類訓練時不收斂的解決方案

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

所以,我的流水賬帳記完了,我也不知道我說的是啥,有需要的人應該可以懂.哈哈…

歸結為一句話就是:訓練神經網路的時候,如果不收斂你可以改變一下影象的大小,很有可能事半功萬倍