Yolov4 cfg解读 一时失言乱红尘 2023-01-09 15:31 132阅读 0赞 **通过[网络可视化工具netron][netron]可以查看cfg网络构图,其中可以查看每层网络的基本信息及编号,编号很重要,特别是route和shortcut层。** ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70][] **程序在读取cfg文件时,每个type是\[\],如 \[convolutional\] 、\[route\],底下key-value内容以字典的形势存储到列表中,因此按照顺序读取,上述编号就是遍历字典列表的索引值。** ### 1、卷积层 ### 根据设定的参数可以获得每层输出的特征图尺寸: ![20210121213141960.png][] 1×1卷积:可以降低计算量 3×3卷积:可以对filter个数进行调整 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70 1][]![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70 2][] [convolutional] batch_normalize=1 filters=32 size=3 stride=1 pad=1 activation=mish # Downsample [convolutional] batch_normalize=1 filters=64 size=3 stride=2 pad=1 activation=mish ### 2、Shortcut和Route层 ### shortcut在cfg中的内容都是一样的 [shortcut] from=-3 activation=linear 其中**from=-3**表示从当前层倒数第三个层(convolutional层或也是shortcut层),其主要作用起到跨层连接(add)。如下图:(**也可以通过编号查看**) ![20210121193643951.png][] ![20210121193826443.png][] route层是一个环路,有几种情况。如**layers为一个或多个负值。主要作用:特征融合操作 使用concatenate拼接** [route] layers = -2 ... ... [route] layers = -1,-7 **如果在两条主线组成的环路中,可按照当前层逆时针顺序获得layers的序号(也可以通过编号相减获得)** ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70 3][] **还有一些情况,在upsample之后,layers值为正值,发现就是与route直接连接的conv层的编号** [upsample] stride=2 [route] layers = 85 ...... ...... ...... [upsample] stride=2 [route] layers = 54 **spp层有点复杂,感觉环路走向不明,通过查看编号就可以解释layers=-1,-3,-5,-6** ### SPP ### [maxpool] stride=1 size=5 [route] layers=-2 [maxpool] stride=1 size=9 [route] layers=-4 [maxpool] stride=1 size=13 [route] layers=-1,-3,-5,-6 ### End SPP ### **获得各层序号,并相减** ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70 4][] **[concatenate和add区别][concatenate_add]** [https://blog.csdn.net/songchunxiao1991/article/details/88566759?utm\_medium=distribute.pc\_relevant.none-task-blog-baidujs\_baidulandingword-2&spm=1001.2101.3001.4242][https_blog.csdn.net_songchunxiao1991_article_details_88566759_utm_medium_distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-2_spm_1001.2101.3001.4242] **程序部分:** elif mdef['type'] == 'route': # nn.Sequential() placeholder for 'route' layer layers = mdef['layers'] filters = sum([output_filters[l + 1 if l > 0 else l] for l in layers]) routs.extend([i + l if l < 0 else l for l in layers]) modules = FeatureConcat(layers=layers) elif mdef['type'] == 'shortcut': # nn.Sequential() placeholder for 'shortcut' layer layers = mdef['from'] filters = output_filters[-1] routs.extend([i + l if l < 0 else l for l in layers]) modules = WeightedFeatureFusion(layers=layers, weight='weights_type' in mdef) **上采样、下采样、YOLO层等参数可以参考[这篇][Link 1]。** 参考: [https://blog.csdn.net/weixin\_41560402/article/details/106119774][https_blog.csdn.net_weixin_41560402_article_details_106119774] [https://www.cnblogs.com/sdu20112013/p/11099244.html][https_www.cnblogs.com_sdu20112013_p_11099244.html] [https://zhuanlan.zhihu.com/p/150127712][https_zhuanlan.zhihu.com_p_150127712] [netron]: https://blog.csdn.net/nan355655600/article/details/106245563 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70]: /images/20221119/29642eae30ba4ae88c4c210e6d0247b2.png [20210121213141960.png]: /images/20221119/f92f1c36d40b4e24ad708e911cb5cd6f.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70 1]: https://img-blog.csdnimg.cn/20210121195530777.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3,size_16,color_FFFFFF,t_70 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70 2]: /images/20221119/30e4a84299c54b74b1106a6d52a928b5.png [20210121193643951.png]: https://img-blog.csdnimg.cn/20210121193643951.png [20210121193826443.png]: /images/20221119/10ae3b6d7c4e4e2690707e6845313d99.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70 3]: /images/20221119/fbe6f20fa98d4396b564b03744a64e37.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzM3MjY0Mzk3_size_16_color_FFFFFF_t_70 4]: /images/20221119/fd0cd249b95b452682531ca1090ced5b.png [concatenate_add]: https://blog.csdn.net/u012193416/article/details/79479935 [https_blog.csdn.net_songchunxiao1991_article_details_88566759_utm_medium_distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-2_spm_1001.2101.3001.4242]: https://blog.csdn.net/songchunxiao1991/article/details/88566759?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_baidulandingword-2&spm=1001.2101.3001.4242 [Link 1]: https://www.cnblogs.com/pprp/p/12199731.html [https_blog.csdn.net_weixin_41560402_article_details_106119774]: https://blog.csdn.net/weixin_41560402/article/details/106119774 [https_www.cnblogs.com_sdu20112013_p_11099244.html]: https://www.cnblogs.com/sdu20112013/p/11099244.html [https_zhuanlan.zhihu.com_p_150127712]: https://zhuanlan.zhihu.com/p/150127712
还没有评论,来说两句吧...