红联Linux门户
Linux帮助

ubuntu 16.04 yolo2修改配置文件训练自己的数据集

发布时间:2017-07-21 09:34:43来源:linux网站作者:maqy
说明
本文主要介绍用yolo2训练自己的数据集时要修改的配置文件。(自己也在摸索中,以后会慢慢修改)
 
环境
- ubuntu 16.04
- cuda 8.0
- OpenCV 3.2
- darknet(17年7月)
ps:安装darknet的时候,并没有带着opencv编译,编译出来opencv有6个多g,编译需要快1小时。带opencv编译,训练的时候可能会出莫名的错误,不知道修复没有。没带opencv编译的话,只是不会自动展示图片,并没有很大的影响。
 
需要修改的配置及其作用
cfg/voc.data
classes= 1    //修改为自己要训练的类别
train  = /home/darknet/scripts/train.txt   //train.txt中存放要训练的图像名
valid  = /home/darknet/scripts/2007_test.txt        //训练的时候用不着,这应该是用来测试的
names = /home/darknet/data/voc.names   //voc.names存储的是各类的名字,默认有20类,可以修改为自己的类名
backup = /home/darknet/backup   //训练完成后模型存储的地点
 
cfg/yolo-voc.2.0.cfg
yolo-voc.2.0.cfg是我使用的网络,也可以使用别的例如tiny-yolo-voc.cfg等。
开头的batch表示一次读取的图片数?默认为64,占用的显存比较多,我的1050不够用,可以修改为8或者16。
大约15行有max_batches,表示最大的训练次数,可以根据需要修改。一般来说每100次就会在backup文件夹中存储一个.weights文件。
在最后的[region]层中,classes修改为自己要训练的类别数,我修改为1。
在[region]上一层的[convolutional]中修改filters,计算方法为(classes+ coords+ 1)* (num) ,该num即为[region]层中的num数。我的情况:(1+4+1)* 5=30,即我的filters 的值改成了30。
修改filters的建议来源自网上,我修改了之后一切正常。
 
examples/yolo.c
开头的train_yolo函数中,修改
train_images=”/home/darknet/scripts/train.txt” ——即你自己存放的train.txt所在目录
backup_directory = “/home/darknet/backup”——训练完成存放模型的目录
 
examples/detector.c
开头的train_yolo函数中,修改
train_images=”/home/darknet/scripts/train.txt” ——即你自己存放的train.txt所在目录
最后的classes修改为自己的值。
 
利用yolo2训练自己数据集的配置就完成了。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/32054.html