darknet 所有层功能说明
2018-10-12 本文已影响0人
蹦蹦蹦蹦蹦成一个根音侠巴扎嘿
激活函数:
很多层里面有 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)
未完待续。。。