可视化的V3网络结构为
[net]
# Testing 测试模式
# batch=1
# subdivisions=1
# Training 训练模式
batch=64 一批训练样本的样本数量,每batch个样本更新一次参数
subdivisions=16 batch/subdivisions作为一次性送入训练器的样本数量,如果内存不够大,将batch分割为subdivisions个子batch
上面这两个参数如果电脑内存小,则把batch改小一点,batch越大,训练效果越好
subdivisions越大,可以减轻显卡压力
width=416 input图像的宽
height=416 input图像的高
channels=3 input图像的通道数
以上三个参数为输入图像的参数信息 width和height影响网络对输入图像的分辨率,
从而影响precision,只可以设置成32的倍数
momentum=0.9 DeepLearning1中最优化方法中的动量参数,这个值影响着梯度下降到最优值得速度
decay=0.0005 权重衰减正则项,防止过拟合.每一次学习的过程中,将学习后的参数按照固定比例进行降低,为了防止过拟合,decay参数越大对过拟合的抑制能力越强。
angle=0 通过旋转角度来生成更多训练样本
saturation = 1.5 通过调整饱和度来生成更多训练样本
exposure = 1.5 通过调整曝光量来生成更多训练样本
hue=.1 通过调整色调来生成更多训练样本
learning_rate=0.001 学习率决定着权值更新的速度,设置得太大会使结果超过最优值,太小会使下降速度过慢。
如果仅靠人为干预调整参数,需要不断修改学习率。刚开始训练时可以将学习率设置的高一点,
而一定轮数之后,将其减小
在训练过程中,一般根据训练轮数设置动态变化的学习率。
刚开始训练时:学习率以 0.01 ~ 0.001 为宜。
一定轮数过后:逐渐减缓。
接近训练结束:学习速率的衰减应该在100倍以上。
学习率的调整参考
burn_in=1000 在迭代次数小于burn_in时,其学习率的更新有一种方式,大于burn_in时,才采用policy的更新方式
max_batches = 20200