概述
# Testing //测试,训练时候需要注释掉
#batch=1
#subdivisions=1
# Training
batch=64 //每次迭代要进行训练的图片数量 ,在一定范围内,一般来说Batch_Size越大,其确定的下降方向越准,引起的训练震荡越小。
subdivisions=8 //源码中的图片数量int imgs = net.batch * net.subdivisions * ngpus,按subdivisions大小分批进行训练
height=416 //输入图片高度,必须能够被32整除
width=416 //输入图片宽度,必须能够被32整除
channels=3 //输入图片通道数 位深度/8是通道数
momentum=0.9 //冲量
decay=0.0005 //权值衰减
angle=0 //图片角度变化,单位为度,假如angle=5,就是生成新图片的时候随机旋转-5~5度
saturation = 1.5 //饱和度变化大小
exposure = 1.5 //曝光变化大小
hue=.1 //色调变化范围,tiny-yolo-voc.cfg中-0.1~0.1
learning_rate=0.001 //学习率
burn_in=1000
max_batches = 120200 //训练次数,建议设置为classes*2000,但是不要低于4000
policy=steps //调整学习率的策略
//根据batch_num调整学习率,若steps=100,25000,35000,则在迭代100次,25000次,35000次时学习率发生变化,该参数与policy中的steps对应
steps=40000,80000 // 一般设置为max_batch的80%与90%
scales=.1,.1 //相对于当前学习率的变化比率,累计相乘,与steps中的参数个数保持一致;
cfg参数
net层
[net]
batch=96 # 每次iteration训练的时候,输入的图片数量
subdivisions=48 # 将每一次的batch数量,分成subdivision对应数字的份数,一份一份的跑完后,在一起打包算作完成一次iteration
width=512 # width=height,大小为32的倍数
momentum=0.9 # 动量,影响梯度下降到最优的速度,一般默认0.9
decay=0.0005 # 权重衰减正则系数,防止过拟合
angle=0 # 旋转角度,生成更多训练样本
saturation=1.5 # 调整饱和度
exposure=1.5 # 调整曝光度
hue=.1 # 调整色调
learning_rate=0.001
burn_in=1000 # 学习率控制的参数,在迭代次数大于burn_in时,采用policy的更新方式
max_batches=500200 # 最大迭代次数
policy=steps
steps=400000,450000 # 学习率变动步长,Steps和scales相互对应, 这两个参数设置学习率的变化, 根据batch_num调整学习率
scales=.1,.1 # 学习率变动因子,迭代到400000次时,学习率x0.1; 450000次迭代时,学习率又会在前一个学习率的基础上x0.1
shortcut层
[shortcut] # shortcut部分是卷积的跨层连接,就像Resnet中使用的一样
from=-2 # 参数from是−2,意思是shortcut的输出是通过与先前的倒数第二层网络相加而得到, 跨越连接
activation=linear
idx=6
route层
[route]
layers=-1, -3 # 在当前层引出之前卷积所得到的特征层,这里的-1,-3代表
# 将前一层输出的feature和前第3层输出的feature concat
# 以后再作为当前层的输出,也就是作为下一个卷积的输入。所
# 以route输出的通道数要和下一个conv输入的通道一致
yolo层前的conv层
[convolutional]
batch_normalize=0 # BN,是否做BN操作
pad=1 # 如果pad为0,padding由padding参数指定
# 如果pad为1,padding大小为size/2,padding应该是对输入图像左边缘拓展的像素数量
filters=42 # =num(yolo层个数)*(classes+5),5是5个坐标,<x_center> <y_center> <width> <height><object-class>
yolo层
[yolo]
mask=6,7,8 # anchors的索引值,如果mask的值是0,1,2,这意味着使用第一,第二和第三个anchor
anchors = 7, 10, 14, 24, 27, 43, 32, 97, 57, 64, 92, 109, 73, 175, 141, 178, 144, 291
classes=9 # 类别数目
num=9 # 每个grid cell预测几个box,和anchors的数量一致
jitter=.3 # 通过抖动来防止过拟合
ignore_thresh=.7 # 当预测的检测框与ground true的IOU大于ignore_thresh的时候,参与loss的计算,否则,检测框的不参与损失计算
truth_thresh=1
random=1 # 多尺度训练:如果显存小,设置random=0,关闭多尺度训练。
# random设置成1,可以增加检测精度precision,每次迭代图片大小随机从320到608,步长为32,如果为0,每次训练大小与输入大小一致
# 当打开随机多尺度训练时,前面设置的网络输入尺寸width和height其实就不起作用了,width会在320到608之间随机取值,且width=height,
# 每10轮随机改变一次,一般建议可以根据自己需要修改随机尺度训练的范围,这样可以增大batch,可以自行尝试!
最后
以上就是舒服草莓为你收集整理的yolo下cfg文件含义的全部内容,希望文章能够帮你解决yolo下cfg文件含义所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复