YOLO2训练小记:
用了600张图像,制作训练集,设置batch = 30,subdivisions = 6, 设置每10个batch后就输出一个中间模型,我把yolo-voc_20.weights,yolo-voc_30.weights,yolo-voc_40.weights分别test,yolo-voc_20.weights,yolo-voc_30.weights两个模型测试出来的结果,每张图有好多检测框,而且没有框到object,而yolo-voc_40.weights则没有检测框出来。还没找到原因。07-06-28
---------------------------------------------------------------------------------------------------------------
今天,上面的问题已解决。
一个是训练的程度未达到,一个是改用yolo-voc.2.0.cfg来训练。
之前只是想小规模训练看看效果,所以在cpu上进行训练,速度实在是龟速,今天改用gpu+CUDA+cudnn,大大提高速度,只设置6000次迭代,中间过程的拿来测试,总算是正常了。
Yolo2:cpu(i5)上速度是8~10s/帧,GPU(1060)上速度是1~2s/帧,加上CUDNN加速是30到80ms/帧。
内容已经上传至下载点击打开链接,请自行下载查阅,ps:之前有上传一份,后面查看图像都乱掉,不懂哪出问题。这里重新传了一份。
http://blog.csdn.net/renhanchi/article/details/71077830
http://blog.csdn.net/ch_liu23/article/details/53558549#comments
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
20170801
整理了一些数据进行训练。发现两种情况,一是训练出来的模型检测效果非常好,置信度非常高,都要接近1,有很多是1,然鹅对于没有目标的图像进行检测也非常容易误检,且置信度也非常高,这可能就是过拟合了。二是训练出来的模型检测效果一般,比如对一些暗的,训练集没有的图像无法检测,而误检也是挺多。这应该就是没收敛或局部最优。
调整了一下训练样本分布,效果还是没有差多少,而且avg loss有时会在0.2左右徘徊不再下降。这两天终于有了进展,一,增加训练样本的数量和多样性,二,avg loss有时后稳定在一个较小数值是正常的,说明已经收敛到一定程度。但也要通过测试看看是不是过拟合了。根据自己的训练结果测试看,对于单一类别检测的情况,一般迭代到5000代,效果还不错,到10000代,再好一点,但是误检还是相对较多,判断是数据集还有训练的收敛度不够。
--------------------------------------------------------------------
20170901 训练样本增加,则iteration需要增加,这样检测率和误检率的综合效果较好,10000的样本需要5到10万的iteration
---------------------------------------------------------------------
20171030
根据我的训练样本情况,设置cfg文件中的迭代次数时,可以在较大的学习率时迭代次数设置大点,比如
steps=100,30000,50000,70000,100000
scales=10,.5,.1,0.5,0.5
这样收敛性比较好。最后loss可以降低到10的-2次方级别