详细解读yolov3网络结构及cfg文件

cfg的参数解释以及网络结构流程如下所示,如有疑问,欢迎交流。

[net]
# Testing #推理时才用的到Testing
# batch=1
# subdivisions=1
# Training #训练时使用以下参数
batch=64 #每次载入的批次大小,这里是每次载入64张图片
subdivisions=16 #这里将batch张图片分为16次送入,为了避免显存不够导致溢出
width=608 #训练时的图片宽度
height=608 #训练时的图片高度
#这里注意:训练集中的图片可以是各种尺度的,darknet框架下的训练会自动将图片resize成此大小
#也可以提前自己resize再作为训练集,这样训练速度会快一些
channels=3 #三通道的图像
momentum=0.9 #动量,影响梯度下降的速度
decay=0.0005 #权重衰减比,该值越大,模型抑制过拟合的能力越强,但过大会导致模型无法收敛
angle=15 #样本增强项-角度,会随机将样本在-15度到15度之间旋转来增多样本
saturation = 1.5 #样本增强项-饱和度,目的同样是增多样本
exposure = 1.5 #样本增强项-曝光度,目的同上
hue=.1 #样本增强项-色调,目的同上

learning_rate=0.001 #初始学习率
burn_in=1000 #训练次数少于burn_in次时,学习率不变,多于burn_in次时采用policy的学习率更新策略
max_batches = 500200 #最大训练的batch数,超过该数就停止训练
policy=steps #使用policy的训练策略,训练策略有:CONSTANT, STEP, EXP, POLY, STEPS, SIG, RANDOM这几种
steps=300000,450000 #训练次数达到300000次时,学习率衰减第一个scale倍(10倍),450000次时同样衰减10倍
scales=.1,.1 #与steps配合

[convolutional]
batch_normalize=1 #是否使用bn层,1代表是
filters=32 #该卷积层滤波器的个数
size=3 #滤波器大小,这里是3x3
stride=1 #滑动步长
pad=1 #是否需要padding补0
activation=leaky #激活函数,leaky_Relu

# Downsample 下采样过程,这里代表下一层卷积层运算过后,特征图的x,y维度会变为原来的stride倍

[convolutional]
batch_normalize=1
filters=64
size=3
stride=2 #滑动步长为2,这里实现了下采样
pad=1
activation=leaky

[convolutional]
batch_normalize=1
filters=32
size=1
stride=1
pad=1
activation=leaky

[convolutional]
batch_normalize=1
filters=64
size=3
stride=1
pad=1
activation=leaky

[shortcut]
from=-3
activation=linear

# Downsample

[convolutional]
batch_normalize=1
filters=128
size=3
stride=2
pad=1
activation=leaky

[convolutional]
batch_normalize=1
filters=64
size=1
stride=1
pad=1
activation=leaky

[convolutional]
batch_normalize=1
filters=128
size=3
stride=1
pad=1
activation=leaky

[shortcut]
from=-3
activation=linear

[convolutional]
batch_normalize=1
filters=64
size=1
stride=1
pad=1
activation=leaky

[convolutional]
batch_normalize=1
filters=128
size=3
stride=1
pad=1
activation=leaky

[shortcut]
from=-3
activation=linear

# Downsam
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Linux创始人LinusTorvalds有一句名言:Talk is cheap, Show me the code.(冗谈不够,放码过来!)。 代码阅读是从入门到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。  YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。YOLOv3的实现Darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。  本课程将解析YOLOv3的实现原理和源码,具体内容包括: YOLO目标检测原理  神经网络及Darknet的C语言实现,尤其是反向传播的梯度求解和误差计算 代码阅读工具及方法 深度学习计算的利器:BLAS和GEMM GPU的CUDA编程方法及在Darknet的应用 YOLOv3的程序流程及各层的源码解析本课程将提供注释后的Darknet的源码程序文件。  除本课程《YOLOv3目标检测:原理与源码解析》外,本人推出了有关YOLOv3目标检测的系列课程,包括:   《YOLOv3目标检测实战:训练自己的数据集》  《YOLOv3目标检测实战:交通标志识别》  《YOLOv3目标检测:原理与源码解析》  《YOLOv3目标检测:网络模型改进方法》 建议先学习课程《YOLOv3目标检测实战:训练自己的数据集》或课程《YOLOv3目标检测实战:交通标志识别》,对YOLOv3的使用方法了解以后再学习本课程。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值