markdown 模型压缩加速技术

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了markdown 模型压缩加速技术相关的知识,希望对你有一定的参考价值。

# 复杂度分析
深度学习模型复杂度主要体现在`计算量FLOPs`,`访存量`,`参数量`,`并行度`上

![车顶线模型:左侧为带宽受限,右侧为算力受限](https://pic3.zhimg.com/80/v2-eecaf953bd73925b8a15fea556d4b802_hd.png)

- **计算量**
卷积层的计算量由输出特征图的大小、卷积核的大小以及输入和输出通道数所共同决定。
对输入特征图进行下采样,或者使用更小、更少的卷积核都可以明显降低卷积层的计算量。
假设卷积层的输出特征图空间尺寸为 H × W,
输入通道数为 Cin,
卷积核个数(输出通道数)为 Cout,
每个卷积核空间尺寸为 KH × KW,
那么该卷积层的理论计算量为 **H × W × KH × KW × Cin × Cout** FLOPs

- **访存量**
模型完成一次前向传播过程中发生的内存交换总量,单位是 Byte。
访存量的重要性经常会被人们忽视,实际上,模型在逐层进行前向传播的过程中,需要频繁的读写每层的输入特征图、权重矩阵和输出特征图,而读写速度取决于计算平台的内存带宽。
如果在进行模型加速时,只关注计算量的减少,往往使得模型进入带宽受限状态,最终加速比与理论计算量减少不成正比。


- **参数量**
即模型所含权重参数的总量,单位是 Byte,表现为模型文件的存储体积大小。


- **并行度**
如果以 GPU 作为计算平台,那么由于 GPU 本身所具有的高吞吐特性,模型的并行度会成为影响模型实际运行效率的一个重要方面。模型的并行度越高,意味着模型越能够充分利用 GPU 的算力,执行效率越高。影响并行度的因素有很多,例如模型的计算强度(计算量与访存量的比值)、卷积算法的具体实现方式等,Batch Size 也会显著的影响模型的并行度。


# 模型压缩加速的主要技术方向

- 轻量网络设计
- 模型裁剪
- 模型蒸馏
- 矩阵分解
- 量化与低精度运算
- 计算图优化
- 卷积算法优化
- 硬件加速

以上是关于markdown 模型压缩加速技术的主要内容,如果未能解决你的问题,请参考以下文章

深度神经网络压缩和加速详解

神经网络加速与模型压缩

通用卷积核用于模型压缩和加速

量化感知训练实践:实现精度无损的模型压缩和推理加速

重磅!一文深入深度学习模型压缩和加速

GitHub代码库:深度学习模型压缩与加速