版权声明:虽然本文为博主原创文章,不过随便转载,但必须留下出处。 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
所以,我的流水账帐记完了,我也不知道我说的是啥,有需要的人应该可以懂.哈哈…
归结为一句话就是:训练神经网络的时候,如果不收敛你可以改变一下图像的大小,很有可能事半功万倍