0
点赞
收藏
分享

微信扫一扫

综述:Pruning and Quantization for Deep Neural Network Acceleration: A Survey

这里写目录标题

一、总览图1显示了可能导致过参数化的三个设计考虑因素:1)网络结构,2)网络优化,3)硬件加速器设计。

CNN加速方法:从设计到实施,CNN的加速可以分为三大类:结构设计(或生成)、进一步优化和专门硬件。

在这里插入图片描述

二、本文主要研究卷积神经网络的网络优化问题。它的组织如下:

在第2节中,我们介绍了神经网络,特别是卷积神经网络。我们也描述了一些卷积的网络优化。在第3节中,我们描述了静态和动态剪枝技术。在第4节中,我们讨论量化及其对精度的影响。我们还比较了量化库和框架。然后我们给出了一些常见网络的量化精度结果。我们在第5节给出了结论并提供了正确使用的指导。最后,我们在第6节给出总结意见。

2. Convolutional Neural Network

卷积神经网络是一类使用卷积运算从数据源提取特征的前馈dnn。cnn最成功地应用于视觉相关的任务,但它们也被用于自然语言处理[89]、语音识别[2]、推荐系统[204]、恶意软件检测[213]和工业传感器时间序列预测[251]。为了更好地理解优化技术,在本节中,我们将介绍CNN部署的两个阶段——训练和推理,讨论卷积操作的类型,将批归一化(BN)描述为一种训练的加速技术,将池化描述为一种降低复杂性的技术,并描述了在现代网络结构中所部署的参数的指数增长。

2.1. 初步

为了更好地理解本文,本节列出了我们用来描述神经网络的术语。为了快速查找,表1中收集了缩略语和缩写词。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
系数-与代数项相乘的常数,在卷积的情况下是滤波器的数据。
参数-一层的所有因素,包括系数和偏差。
超参数—网络训练或微调(再训练)前的预定义参数。
在这里插入图片描述

激活(퐀∈ℝℎ×푤×푐)-激活(如ReLu,Leaky,双曲正切等)的输出一层在多层网络体系结构中,通常在ℎ高度,宽度w,通道c。
在这里插入图片描述

特征(퐅∈ℝℎ×푤×푐)——一层的输入数据,不同于输出A。通常,当前层的特性是前一层的激活。
在这里插入图片描述

2.2。训练和推理cnn被部署为两个步骤的过程:

1)训练和2)推理。训练首先执行,其结果要么是一个连续的数值(回归),要么是一个离散的类别标签(分类)。分类训练包括将给定的标注数据集作为输入应用到CNN,通过网络传播它,并将输出的分类与ground-truth标签进行比较。然后,网络权值通常会使用反向传播策略(如随机梯度下降(SGD))进行更新,以减少分类错误,这就像搜索最佳权值的过程一样。这是迭代地执行,直到达到最小可接受的误差或没有进一步减少误差。反向传播是计算密集型的,传统上是在利用专用gpu或tpu等专业训练加速器的数据中心中执行的。微调被定义为来自实值模型的一次训练。与从头开始训练相比,量化模型或修剪模型更容易恢复精度。
       CNN推理分类采用一个以前训练过的分类模型,并从以前输入的不属于训练数据集的数据中预测该类。推理的计算强度不高,可以在边缘设备、移动设备和嵌入式设备上执行。移动设备上执行的推断网络的大小可能受到内存、带宽或处理限制的限制[73]。3中讨论的剪枝和4中讨论的量化是两种可以缓解这些约束的技术。

举报

相关推荐

0 条评论