卷积神经网络/CNN/深度学习在做分类训练时不收敛的解决方案

版权声明:虽然本文为博主原创文章,不过随便转载,但必须留下出处。 https://blog.csdn.net/Fighting_Dreamer/article/details/71498256

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

所以,我的流水账帐记完了,我也不知道我说的是啥,有需要的人应该可以懂.哈哈…

归结为一句话就是:训练神经网络的时候,如果不收敛你可以改变一下图像的大小,很有可能事半功万倍

猜你喜欢

转载自blog.csdn.net/Fighting_Dreamer/article/details/71498256