基于 Ubuntu 16.04 从零开始配置深度学习主机(五)--Darknet配置与训练
今年年初,Darknet团队发布了YOLO v3版本,在Ubuntu下的配置非常便捷,关于Darknet的配置,之前报错的时候在GitHub上问过作者,OpenCV3.4.1存在bug,并不能编译成功Darknet,建议退回到3.4.0版本,之前我是用CUDA8.0+CUDNN7.0.1+OpenCV3.3.1配置成功的,现在我用CUDA9.0+CUDNN7.3.0+OpenCV3.4.0也配置成功了。在此记录下配置和训练过程。
配置
- 下载源码并编译
git clone https://github.com/pjreddie/darknet
cd darknet
make
- 修改Makefile文件,配置OPENCV\CUDNN\GPU
GPU=1
CUDNN=1
OPENCV=1
OPENMP=0
DEBUG=0
- 重新编译
make
训练
- 下载权重文件并测试
wget https://pjreddie.com/media/files/yolov3.weights
./darknet detector test cfg/coco.data cfg/yolov3.cfg yolov3.weights data/dog.jpg
- 下载预训练模型放在/darknet根目录下
wget https://pjreddie.com/media/files/darknet53.conv.74
- 文件结构
-darknet/mydata #数据集路径
-Annotations #存放注释文件
-JPEGImages #存放原始图片
-ImageSets
-Layout
-Main #存放trian.txt 和val.txt
-Segmentation
- 运行脚本生成包含训练集、验证集、测试集名称的.txt文件
- 修改.cfg 网络结构文件
下图是今年四月份我第一次开始训练的时候报错,在Github上提问作者时,作者的回复。 - 修改.data 配置文件
voc-18.data # 指定分类数量;训练图片和验证图片的路径;分类名称;权重保存路径。 - 修改.names分类名称文件
因为我只有一类,所以我只写了person。这里一定要与标签中的对应,不能多不能少,否则训练报错。 - 运行自带的voc_label.py脚本生成用于训练的.txt文件
- 训练
./darknet detector train mydata/voc-18.data mydata/yolov3-voc-18.cfg
训练过程如图所示: