zoukankan      html  css  js  c++  java
  • yolov3.cfg参数解读

    对于模型的优化,我们可以通过适当修改网络基本配置信息完成训练上的优化。

    yolov3.cfg文件:

    
    

    [net]
    # Testing #测试模式
    batch=1
    subdivisions=1
    # Training #训练模式 每次前向图片的数目=batch/subdivisions
    # batch=64
    # subdivisions=16
    #关于batch与subdivision:在训练输出中,训练迭代包括8组,这些batch样本又被平均分成subdivision=8次送入网络参与训练,以减轻内存占用的压力;batch越大,训练效果越好,subdivision越大,占用内存压力越小

    
    


    width=416
    height=416
    channels=3
    #网络输入的宽、高、通道数这三个参数中,要求width==height, 并且为32的倍数,大分辨率可以检测到更加细小的物体,从而影响precision

    
    

    momentum=0.9 #动量,影响梯度下降到最优的速度,一般默认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
    #迭代次数,1000次以内,每训练100次保存一次权重,1000次以上,每训练10000次保存一次权重
    policy=steps # 学习率策略,学习率下降的方式
    steps=40000,45000 #学习率变动步长
    scales=.1,.1
    #学习率变动因子:如迭代到40000次时,学习率衰减十倍,45000次迭代时,学习率又会在前一个学习率的基础上衰减十倍

    
    

    [convolutional]
    batch_normalize=1 #BN
    filters=32 #卷积核数目
    size=3 #卷积核尺寸
    stride=1 #做卷积运算的步长
    pad=1
    #如果pad为0,padding由 padding参数指定;如果pad为1,padding大小为size/2,padding应该是对输入图像左边缘拓展的像素数量

    activation=leaky #激活函数类型

    
    


    [yolo]
    mask = 6,7,8 #使用anchor时使用前三个尺寸
    anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326
    #anchors是可以事先通过cmd指令计算出来的,是和图片数量,width,height以及cluster(就是下面的num的值,即想要使用的anchors的数量)相关的预选框,可以手工挑选,也可以通过k-means算法从训练样本中学出

    
    

    classes=20
    num=9
    #每个grid cell预测几个box,和anchors的数量一致。当想要使用更多anchors时需要调大num,且如果调大num后训练时Obj趋近0的话可以尝试调大object_scale
    jitter=.3 #通过抖动来防止过拟合,jitter就是crop的参数
    ignore_thresh = .5
    #ignore_thresh 指得是参与计算的IOU阈值大小。当预测的检测框与ground true的IOU大于ignore_thresh的时候,参与loss的计算,否则,检测框的不参与损失计算,目的是控制参与loss计算的检测框的规模,当ignore_thresh过于大,接近于1的时候,那么参与检测框回归loss的个数就会比较少,同时也容易造成过拟合;而如果ignore_thresh设置的过于小,那么参与计算的会数量规模就会很大。同时也容易在进行检测框回归的时候造成欠拟合。
    #参数设置:一般选取0.5-0.7之间的一个值,之前的计算基础都是小尺度(13*13)用的是0.7,(26*26)用的是0.5。这次先将0.5更改为0.7。
    truth_thresh = 1
    random=1 #如果显存小,设置为0,关闭多尺度训练,random设置成1,可以增加检测精度precision,每次迭代图片大小随机从320到608,步长为32,如果为0,每次训练大小与输入大小一致

     

     注:模型一般到20000次的时候就基本收敛了

    如果想添加新的层,需要添加相应的源码(src)

     

     

     

    参考博客:https://blog.csdn.net/qq_43211132/article/details/91978149

  • 相关阅读:
    常用工具篇(二)死链接扫描工具–Xenu
    基于python的性能测试工具–locust
    AppServ 8.0 的php 5.6 切换到 php7.0 方法
    toString()和toLocaleString() 的区别
    解决Nginx无法重启问题
    解决 AppServ8.0 安装好之后数据库登陆不上的问题
    TCP/IP 协议
    pc端登陆多个微信
    阿里云服务器创建宝塔面板教程
    轻松免费将你的家庭版windows10升级到windows10专业版
  • 原文地址:https://www.cnblogs.com/shierlou-123/p/11152623.html
Copyright © 2011-2022 走看看