先来张图
一、各列说明
1. layer
这一列顾名思义,是层名称。
数字是层编号,后面是层名称。
conv:卷积层。
res:shortcut层(跨层连接,借鉴 resnet 而来,所以用res表示)
yolo:YOLO层。
route:融合层,就是把层进行合并,然后输出到下一层。(后面再仔细讲)
upsample:上采样层。
2. filters
这是对于 conv 来说的,代表过滤器的通道数,和后面 output 的通道数是一致的。
(上述的过滤器和常说的卷积核是一样的东西,就是卷积运算的那个动函数)
这一列中对应非 conv 层的数字在后面讲解各层时再说明。
3. size
这一列和 filters 一样,也是只对于 conv 来说的,代表过滤器的大小和步长。
如:3 x 3 / 1,代表过滤器大小为 3*3,步长为 1。
4. input
这一层的输入,416 x 416 x 3,代表输入大小为 416 x 416,通道数为 3。
5. output
这一层的输出,416 x 416 x 32,代表输入大小为 416 x 416,通道数为 32。
6. 最后一列
某次卷积运算需要多少个十亿次浮点运算,其全称是 billion float operations,将多次卷积运算所耗费的BLOPS加起来就可以表示某个算法模型的时间复杂度。
总之,就是衡量这层卷积的性能的指标,可以看到只有 conv 层后面才有这个参数。
参考1 、参考2
(2020.8.22)
二、各行说明
1. conv
卷积层, 用过滤器(卷积核)对输入做卷积。
2. res
shortcut 层,是卷积的跨层连接,本层的输入与输出一般保持一致,并且不进行其他操作,只是求差。
后面的数字代表把那一层的输出作为本层的输入,如下图:
3. yolo
做 yolo 运算,还不太明白,再补。
4. route
融合层,就是把层进行合并,然后输出到下一层。
如11层,代表将第9层与第3层的输出相加,作为本层的输出,即下一层的输入。
相加规则为:如第3层的输出为208 x 208 x 64,第9层的输出为208 x 208 x 256,则本层输出为208 x 208 x (64+256) 即 208 x 208 x 320,所以route的两层的 weight 和 height 必须相等,若不相等,则本层输出为 0 x 0 x 0,下一层得不到有效输入,就会报 Layer before convolutional must output image. 然后停止。
5. upsample
上采样层,如第10层,后面的 2x,是2倍上采样的意思。