0. 写在前面
这篇博文主要是为了记录一下yolov5中的小的记忆点,方便自己查看和理解。
接上篇:YOLOv5-小知识记录(一)-****博客
1. CSPNet(Cross Stage Partial Network)
一种增强CNN学习能力的跨阶段局部网络,主要从网络结构设计的角度来解决以往工作在推理过程汇总需要很大计算量的问题,其能够在降低20%计算量的情况下保持甚至提高CNN的能力。
推理计算过高的问题是由于网络优化中的梯度信息重复导致的,因此CSPNet通过将梯度的变化从头到尾地集成到特征图中,在减少了计算量的同时可以保证准确率。
是一种处理思想,它可以与ResNet、DenseNet、HarNet等分类网络和YOLO等目标检测网络结合。
具体解决的问题:
1. 增强CNN的学习能力,能够在轻量化的同时保持准确性;
2. 消除计算瓶颈,计算瓶颈太高会导致更多的周期来完成推理过程,或者一些算术单元经常空闲;
3. 降低内存成本,动态随机存取存储器DRAM的晶圆制造成本非常昂贵,而且占用大量空间。
CSPNet在DenseNet网络中实际上将Base layer分成两部分,一部分不进行操作,一部分进行Dense Bock和Transition操作变换,然后将两部分特征融合。
部分密集块的目的是:
1. 增加梯度路径,通过拆解和合并策略,可以使梯度路径的数量增加一倍。由于跨阶段策略,可以缓解使用显式特征图副本进行连接所带来的缺点;
2. 每一层的平衡计算,由于部分稠密块中稠密层操作所涉及的基层通道只占原始数量的一半,因此可以有效解决近一半的计算瓶颈;
3. 减少内存流量,部分密集块最多可以节省网络一半的内存流量。
4. 部分过渡层的目的是为了最大化梯度组合的差异,是一种分层特征融合机制,使用截断梯度流的策略来防止不同层学习重复的梯度信息。