YOLOv3官方是用的darknet深度学习框架。
若想快速上手,使用官方的权重,可以直接参考官方的网站:https://pjreddie.com/darknet/yolo/
keras版YOLOv3可以参考博客:https://blog.csdn.net/Patrick_Lxc/article/details/80615433
keras版YOLOv3的github地址:https://github.com/qqwweee/keras-yolo3
注意:
1. yolov3.cfg文件
从0开始训练自己的模型,则不需要下面的修改步骤,而如果想用迁移学习思想,用已经预训练好的权重接着训练,则需要下面的修改步骤。
IDE里直接打开cfg文件,ctrl+f搜 yolo, 总共会搜出3个含有yolo的地方。
每个地方都要改3处,filters:3*(5+len(classes));
classes: len(classes) = 1,我只识别一种,所以为1
random:原来是1,显存小改为0
如果要用预训练的权重接着训练,则需要执行以下代码:然后执行原train.py就可以了。原train.py中有加载预训练权重的代码,并冻结部分层数,在此基础上进行训练。可以修改冻结层数。
python convert.py -w yolov3.cfg yolov3.weights model_data/yolo_weights.h5
这个在github和参考的文章中均提到。
如果不用预训练的权重,上一步不用执行(执行也没影响),但是下面的train.py需要修改,改为如下所示(代码出处为上文提到的参考博客中):直接复制替换原train.py即可
参考博客:https://blog.csdn.net/m0_37857151/article/details/81330699
2.keras版的yolov3中训练出现early_stopping(早停)
出现早停,可以吧回调函数(callback)删了。
操作如下