赞
踩
当想要提升模型在通用计算平台上的FPS(每秒帧数或帧率)时,可以从模型架构的三个关键角度出发进行优化:模型的参数数量、浮点数运算的复杂度以及模型架构的简洁性。以下是对这三个方面的详细展开叙述:
参数数量是影响模型推理速度的重要因素之一。参数越少的模型,其计算量和内存占用通常也越小,因此推理速度更快。
优化策略:
浮点数运算的复杂度直接影响模型的推理速度。减少浮点数运算的数量可以降低计算负担,从而提高FPS。
优化策略:
模型架构的简洁性对于减少内存占用和读写次数至关重要。复杂的模型架构往往涉及更多的中间结果缓存,这可能导致内存占用增大和读写次数增加,从而降低FPS。
优化策略:
总之,通过减少模型的参数数量、降低浮点数运算的复杂度以及优化模型架构的简洁性,可以有效地提升模型的FPS。在实际应用中,可以根据具体需求和场景选择合适的优化策略或组合使用多种策略来达到最佳效果。
本文YOLOV8为例子,通过模型结构的轻量化设计,在保证模型性能稳定不变的前提下通过以上3点原则,极致完成模型在通用平台上的速度提升
如上图,其中利用了PConv模块大量降低参数量
其中
PConv(部分卷积)的基本原理是利用特征图的冗余,从而减少计算和内存访问。具体来说,PConv 只在输入通道的一部分上应用常规卷积进行空间特征提取,而保留剩余通道不变。这种设计的优势在于:
1.减少计算复杂度:PConv 通过在较少的通道上进行计算,降低了浮点操作(FLOPs)的数量。例如,如果部分率设置为 1/4,则PConv的计算量只有常规卷积的 1/16.
2.降低内存访问:与常规卷积相比,PConv减少了内存访问量,这对于输入输出(/0)受限的设备尤其有益
3.保持特征信息流:尽管只对输入通道的一部分进行计算,但保留的通道在后续的逐点卷积(PWConv)层中仍然有用,允许特征信息在所有通道中流动
图中所示的模块是为了在高分辨率特征提取中寻找高效的结构,自注意力模块旨在捕获更广泛的上下文信息,而卷积模块则专注于保留局部信息和减少计算复杂度。这两种模块的结合旨在通过架构搜索找到一个既能高效提取特征又能保持较低计算成本的最佳网络结构。
前后对比发现参数量与运算量均大幅度下降,且精度保持不变,这是通过剪枝、蒸馏都没办到的
注:全部源码可联系博主获取
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。