一、 基础平台:Nivdia显卡GTX1080+Ubuntu训练。
二、 文件配置:yolov3-voc.cfg、Makefile、voc.data、voc.names、coco.names
话不多说,直接上配置原文件。
1. yolov3-voc.cfg
(1)[net]
# Testing
#batch=1
#subdivisions=1
# Training
batch=64#加粗部分就是修改后的值,可直接使用。
subdivisions=16#一张gtx1080gpu上训练设置为8会出现溢出,报错核心已转储,设置为16成功运行。
width=416
height=416
。。。。
(2)learning_rate=0.001#学习率也调整,也可以不调整
。。。
(3)[convolutional]
size=1
stride=1
pad=1
filters=18#计算公式3x(4=+1+class_num),class_num即是类别数
activation=linear
[yolo]
mask = 6,7,8
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
classes=1#类别数目,根据自己训练类别设置。
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=1#使用GPU训练设置为1,否则设置为0.
。。。
(4)[convolutional]
size=1
stride=1
pad=1
filters=18
activation=linear
[yolo]
mask = 3,4,5
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
classes=1
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=1
。。。
(5)[convolutional]
size=1
stride=1
pad=1
filters=18
activation=linear
[yolo]
mask = 0,1,2
anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
classes=1
num=9
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=1
2. Makefile(cpu训练可以不需要修改 直接训练)
Makefile的配置参考了这篇博客,在此致谢并给出网址:https://blog.csdn.net/john_bh/article/details/80625220
GPU=1#使用GPU训练需修改
CUDNN=1
OPENCV=1
OPENMP=0
DEBUG=0
。。。
CC=gcc
NVCC=/usr/local/cuda-8.0/bin/nvcc #nvcc位置
AR=ar
ARFLAGS=rcs
OPTS=-Ofast
LDFLAGS= -lm -pthread
COMMON= -Iinclude/ -Isrc/
CFLAGS=-Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC
。。。
ifeq ($(GPU), 1)
COMMON+= -DGPU -I/usr/local/cuda-8.0/include/
CFLAGS+= -DGPU
LDFLAGS+= -L/usr/local/cuda-8.0/lib64 -lcuda -lcudart -lcublas -lcurand
3. voc.data
classes= 1 #类别数
train = /home/p910/桌面/make/darknet/train.txt #train.txt文件所在路径,该文件包含对应图片的完整路径。
valid = /home/p910/桌面/make/darknet/2007_test.txt #2007_test.txt文件所在路径。
names = data/voc.names
backup = backup
4. voc.names和coco.names
这两个文件都要修改为自己的类别名称,不然会出现检测图片是命名的问题。
三、GPU训练
只需在指令最后加一句:-gpus 0,1,...(只适用YOLOv3,其他未加验证)
四、训练终端后继续在之前训练好的权重基础上训练把黔中文件名(包含扩展名)添加在命令后即可以,注意别家含有final的权重文件。