一种面向制造技术

技术编号:39649455 阅读:7 留言:0更新日期:2023-12-09 11:17
本发明专利技术为一种面向

【技术实现步骤摘要】
一种面向FPGA的CNN定制网络量化加速方法


[0001]本专利技术属于神经网络压缩
,具体涉及一种面向
FPGA

CNN
定制网络量化加速方法


技术介绍

[0002]卷积神经网络是人工智能应用中最常用的网络模型之一,广泛应用在计算机视觉

自然语言处理和嵌入式系统等方面

现在的网络,通过复杂的模型结构和不断堆叠的卷积层来提升网络学习特征的能力,其复杂的计算算子与巨大的参数量给资源有限的硬件设备带来了沉重的存储和计算压力

随着基于
ARM+FPGA
的边缘智能终端越来越普及,实现本地推理对模型轻量化提出了更高的要求

在这种情况下,许多研究人员提出近似

量化和裁剪等方法压缩网络体积,压缩技术通过去除冗余和不相关性来减小模型大小,在降低内存带宽方面起着至关重要的作用

[0003]作为网络压缩的关键技术之一,量化将权重参数从
32
位浮点精度转换为8位或更低,减少了网络的计算强度

参数和内存消耗

然而,网络量化往往会导致精度的损失,如何在不显著损失精度的情况下减小网络尺寸已成为该领域的研究热点

为了补偿量化损失,
DoReFa

Net
提出了一种使用位卷积核进行训练和推断的方法
。Choi
等人引入了
PACT
方法,在训练过程中优化激活量化,而不会导致显著的性能降低

后训练量化通过使用部分验证数据将训练后的网络参数量化为低精度,实现网络压缩

然而,这些近似引入的误差在前向传播计算过程中累积,导致性能显著下降
。Jacob
提出了量化感知训练方法,在训练过程中将量化器注入到网络图中,对网络参数进行量化,并使用直通估计来近似梯度

然而,大多数量化感知训练方法只在卷积操作之前注入量化器,而在更复杂的网络结构中,许多其他操作符保持未量化状态

[0004]在卷积神经网络的训练过程中,通常需要使用图形处理单元
(GPU)
来提供支持

然而,训练完成后,在网络推断阶段使用
GPU
会增加系统的整体性能和资源消耗

为了高效地部署和执行网络,
Kotlar
等人研究了各种部署位置和适合的底层硬件架构,包括多核处理器

众核处理器

可编程逻辑门阵列
(FPGA)
和应用特定集成电路
(ASIC)。
由于
FPGA
具有较低的功耗和灵活可配置的硬件资源,使用
FPGA
进行部署和推断逐渐成为新的研究热点

然而,在
FPGA
上部署
CNN
也面临一些挑战

传统网络如
Vgg16
具有
1.38
亿个参数,以
32
位格式存储时需要
255MB
的存储空间

将这些值传输到
/
从片外存储器还会产生性能和能量开销

此外,由于
FPGA
的独特结构和有限资源,需要对网络的推断部署进行数值调整


技术实现思路

[0005]为了解决使用
FPGA
加速卷积神经网络推断时面临的一系列问题,本文主要实施了以下措施:
[0006]S1
:构建神经网络,并训练全精度神经网络模型;
[0007]S2
:引入改进后的
PACT
方法,并使用感知量化方法对模型进行量化;
[0008]S3
:根据网络模型结构的不同,采用卷积连续执行方法
CEOCO
将特定的非卷积算子进行量化,得到量化模型后进行融合操作;
[0009]S4
:部署轻量级
CNNs
到目标硬件
FPGA
上推理加速验证;
[0010]优选的,神经网络构建及训练网络过程包括:构建轻量化神经网络模型,将图像分类数据集进行预处理,分为训练集和验证集,并对图像数据进行随机翻转

亮度调整并随机裁剪到统一尺寸

将处理好的图片输入到神经网络中进行全精度模型训练

[0011]优选的,引入改进后的
PACT
方法,并使用感知量化方法对模型进行量化操作过程包括:对
PACT
方法进行分析和改进,将
PACT
方法对激活值小于0的数值进行改进处理;对神经网络进行量化感知训练,在前向传播时利用量化器对激活值先使用
PACT
预处理,再进行逐层的对称量化与反量化,对权重值则采用更细粒的逐通道的对称量化与反量化

通过量化和反量化数值来引入量化数值所带来的误差,在进行卷积计算的时候,使用的是反量化的浮点数值,这样神经网络可以学习量化带来的误差

在进行反向传播时,由于使用了取整函数
round

to

nearest
,这会导致梯度计算全部为0,利用直通估计器
STE
来解决这个问题,即直接跳过量化计算公式,将数值传到上一层进行计算

[0012]进一步的,改进的
PACT
方法的公式为:
[0013][0014]其中,
x
为输入激活值,
y
为利用
PACT
函数截断后的值,
α

β
为两个可训练的参数,设置
α
的初始值为
20
,设置
β
的初始值为3,在神经网络量化训练时,通过改变
α

β
的值将激活值进行截断操作,去除异常值从而使得待映射数值紧凑

[0015]进一步的,对权重采用逐通道对称量化的公式为:
[0016][0017][0018]其中,
W
i
为卷积层的第
i
个卷积核的权重,为通过
Q(
·
)
量化和反量化后的权重值,为该权重的缩放因子,由于是对称量化到
8bit
,所以偏置
z
恒等于0,且使用截断函数
clamp
将量化后的数值截断到
(

127

127)

round

round
...

【技术保护点】

【技术特征摘要】
1.
一种面向
FPGA

CNN
定制网络量化加速方法,其特征在于:该方法包括以下步骤:
S1
:构建神经网络,并训练全精度神经网络模型;
S2
:引入改进后的
PACT
方法,并使用感知量化方法对模型进行量化;
S3
:根据网络模型结构的不同,采用卷积连续执行方法
CEOCO
将特定的非卷积算子进行量化,得到量化模型后进行融合操作;
S4
:部署轻量级
CNNs
到目标硬件
FPGA
上推理加速验证
。2.
根据权利要求1所述的一种面向
FPGA

CNN
定制网络量化加速方法,其特征在于:所述
S1
具体包括:构建轻量化神经网络模型,将图像分类数据集进行预处理,分为训练集和验证集,并对图像进行随机翻转

亮度调整并随机裁剪到统一尺寸;将处理好的图片输入到神经网络中进行全精度模型训练
。3.
根据权利要求1所述的一种面向
FPGA

CNN
定制网络量化加速方法,其特征在于:所述
S2
具体包括:对
PACT
方法进行分析和改进,将
PACT
方法对激活值小于0的数值进行改进处理;对神经网络进行量化感知训练,在前向传播时利用量化器对激活值先使用
PACT
预处理,再进行逐层的对称量化与反量化,对权重值则采用更细粒的逐通道的对称量化与反量化;通过量化和反量化数值来引入量化数值所带来的误差,在进行卷积计算的时候,使用的是反量化的浮点数值,学习量化带来的误差;在进行反向传播时,由于使用了取整函数
round

to

nearest
,这会导致梯度计算全部为0,利用直通估计器
STE
来解决这个问题,即直接跳过量化计算公式,将数值传到上一层进行计算;改进的
PACT
方法的公式为:其中,
x
为输入激活值,
y
为利用
PACT
函数截断后的值,
α

β
为两个可训练的参数,设置
α
的初始值为
20
,设置
β
的初始值为3,在神经网络量化训练时,通过改变
α

β
的值将激活值进行截断操作,去除异常值从而使得待映射数值紧凑;对权重采用逐通道对称量化的公式为:对权重采用逐通道对称量化的公式为:其中,
W
i
为卷积层的第
i
个卷积核的权重,为通过
Q(
...

【专利技术属性】
技术研发人员:谢显中易铃杰
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1