YOLOv3中darknet的各种层的说明

转自:链接:https://www.jianshu.com/p/7a701e861cec

激活函数:

很多层里面有 activation 这一项,这是激活函数,我看到的配置文件里面最常用的就3个:
LINEAR:啥都不干
RELU   :值 > 0时保持不变,小于0时置0
LEAKY :值 > 0时保持不变,小于0时值 * 0.1 (类似于caffe的prelu层)

卷积层:

[convolutional]
filters=96        # 输出blob通道数
size=11          # 卷积核尺寸 (长宽相同),等价于caffe里面的kernel_w, kernel_h
stride=4         # 移动步长
pad=0            # 是否在边缘补 0    最终的padding为size/2(当pad = 1)
activation=relu    # Relu 激活函数

shortcut 层:

类似于caffe 的 eltwise 层(add),也就是把两个c h w都相同的两个层相加成一个相同c h w的层。

[shortcut]
from=-3   #和往前数第三个层相加
activation=linear

route 层:

route layer层主要是把对应的层连接在一起,在darknet 网络结构中,要求输入层对应的width、height必须相等,如果不相等,则把route layer层的输出w,h,c都设置为0。例如输入层1:26*26*256   输入层2:26*26*128  则route layer输出为:26*26*(256+128)  它具有可以具有一个或两个值的属性层。当属性只有一个值时,它会输出由该值索引的网络层的特征图。类似于caffe的concat层。

[route]
layers = -1, 61

upsample 层:

上采样,功能类似最邻近差值缩放算法

[upsample]
stride=2

yolo层(YOLOV3新增的层):


[yolo]
mask = 0,1,2  #当前属于第几个预选框
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326 #预选框, 将样本通过k-means算法计算出来的值
classes=80  #网络需要识别的物体种类数
num=9    #预选框的个数,即anchors总数
jitter=.3   #通过抖动增加噪声来抑制过拟合
ignore_thresh = .7
truth_thresh = 1
random=1  #设置为0,表示关闭多尺度训练(显存小可以设置0)





 

猜你喜欢

转载自blog.csdn.net/ZhuLT23/article/details/88733871