计算机系统应用教程网站

网站首页 > 技术文章 正文

在Darknet下使用Yolov3,创建自己数据集训练预测

btikc 2024-09-30 12:58:09 技术文章 12 ℃ 0 评论

batch=64 # 一批训练样本的样本数量,每batch个样本更新一次参数

subdivisions=32 # 它会让你的每一个batch不是一下子都丢到网络里。而是分成subdivision对应数字的份数,一份一份的跑完后,在一起打包算作完成一次iteration

width=416 # 只可以设置成32的倍数

height=416 # 只可以设置成32的倍数

channels=3 # 若为灰度图,则chennels=1,另外还需修改/scr/data.c文件中的load_data_detection函数;若为RGB则 channels=3 ,无需修改/scr/data.c文件

momentum=0.9 # 最优化方法的动量参数,这个值影响着梯度下降到最优值得速度

decay=0.0005 # 权重衰减正则项,防止过拟合

angle=0 # 通过旋转角度来生成更多训练样本

saturation = 1.5 # 通过调整饱和度来生成更多训练样本

exposure = 1.5 # 通过调整曝光量来生成更多训练样本

hue=.1 # 通过调整色调来生成更多训练样本

learning_rate=0.001 # 学习率, 刚开始训练时, 以 0.01 ~ 0.001 为宜, 一定轮数过后,逐渐减缓。

burn_in=1000 # 在迭代次数小于burn_in时,其学习率的更新有一种方式,大于burn_in时,才采用policy的更新方式

max_batches = 50200 # 训练步数

policy=steps # 学习率调整的策略

steps=40000,45000 # 开始衰减的步数

scales=.1,.1 # 在第40000和第45000次迭代时,学习率衰减10倍

...

[convolutional]——YOLO层前一层卷积层

...

filters=24 # 每一个[yolo]层前的最后一个卷积层中的 filters=num(yolo层个数)*(classes+5)

...

[yolo]

mask = 6,7,8

anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326 #如果想修改默认anchors数值,使用k-means即可;

classes=3 # 修改为自己的类别数

num=9 # 每个grid cell预测几个box,和anchors的数量一致。调大num后训练时Obj趋近0的话可以尝试调大object_scale

jitter=.3 # 利用数据抖动产生更多数据, jitter是crop的参数, jitter=.3,就是在0~0.3中进行crop

ignore_thresh = .5 # 决定是否需要计算IOU误差的参数,大于thresh,IOU误差不会夹在cost function中

truth_thresh = 1

random=1 # 如果为1,每次迭代图片大小随机从320到608,步长为32,如果为0,每次训练大小与输入大小一致

...

参考:https://www.cnblogs.com/xieqi/p/9818056.html

1.因为训练分为彩色图像和灰度图像训练,所有要做一下修改,看到这篇文章:

channels=3 # 若为灰度图,则chennels=1,另外还需修改/scr/data.c文件中的load_data_detection函数;若为RGB则 channels=3 ,无需修改/scr/data.c文件,所以记录一下

2.训练时候可以看一下内存使用,显存使用情况。内存free -m,显存使用nvidia-smi。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表