一种对卷积神经网络模型量化的方法、装置及电子设备制造方法及图纸

技术编号:33195024 阅读:25 留言:0更新日期:2022-04-24 00:23
本发明专利技术关于一种对卷积神经网络模型量化的方法、装置及电子设备,对于每个block,输入数据为量化后的整点型数据,将卷积层的权重乘以BN层的缩放系数γ

【技术实现步骤摘要】
一种对卷积神经网络模型量化的方法、装置及电子设备


[0001]本专利技术涉及神经网络
,特别涉及一种对卷积神经网络模型量化的方法、装置及电子设备。

技术介绍

[0002]卷积神经网络作为当前人工智能领域的主流算法,但是其模型本身参数量大,所需硬件成本较大,在落地实现中面临不少困难。通常情况下,智能家电的嵌入式设备硬件资源非常有限且对功耗有着严格的要求,其处理器的存储和内存空间较小,使得卷积神经网络在边缘终端的实现成为难点。模型量化能够在精度损失不大的情况下有效减少模型所需内存,是解决这一难点的重要手段。
[0003]在嵌入式中资源较少,神经网络算法需要大量计算,进行浮点型CPU(Central Processing Unit,中央处理器)计算资源需要消耗大量资源,且计算速度慢。当前采用NPU(Neural Network Processing Unit,神经网络处理器)整点计算加速,来达到工业目标。
[0004]经过对当前市场上卷积神经网络的量化方案调研,目前市场上成熟离线量化方式是TensorRT量化方法,该方法能够在NVIDIA平台上提供高吞吐、低延迟的推理性能,每一层的实现方式相对简单。然而对于计算单元block,对于当前block的卷积层,对输入进行量化及对权重进行量化后,得到整数结果还需还原回浮点实数,因此需要计算结果移出NPU还原回浮点实数后,方能传递至下一层通过CPU进行计算,因此无法构建端对端的运算通路。

技术实现思路

[0005]本专利技术提供一种对卷积神经网络模型量化的方法、装置及电子设备,用以解决目前在对卷积神经网络模型进行量化时,无法构建端到端的运算通路的问题。本专利技术的技术方案如下:
[0006]根据本专利技术实施例的第一方面,提供一种对卷积神经网络模型量化的方法,所述卷积神经网络模型包括多个计算单元block,包括:
[0007]对于每个block,输入数据为量化后的整点型数据,将卷积层的权重乘以归一化BN层的缩放系数γ

后进行量化,得到量化后的权重;
[0008]在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后量化,得到量化后的偏置,将所述输入数据乘以量化后的权重,再加上量化后的偏置,将得到的整点型数据输入到归一化层;
[0009]在归一化层将输入的整点型数据除以量化时使用的第一量化系数,并乘以下一个block输入数据的第二量化系数,将得到的整点型数据输入到激活层;
[0010]在激活层通过激活函数对输入的整点型数据运算后,将得到的整点型数据输入到下一个block。
[0011]作为一种可能的实施方式,还包括:
[0012]获取当前block的输入数据,若当前block的输入数据为浮点型数据时,利用输入
数据的第二量化系数得到量化后的整点型数据。
[0013]作为一种可能的实施方式,所述BN层的缩放系数γ

,设置为下一个block输入数据的第二量化系数除以第一量化系数,所述平移系数β

设置为零。
[0014]作为一种可能的实施方式,所述第一量化系数为第二量化系数和第三量化系数的乘积,再除以乘法运算时的移位shift,所述第三量化系数为权重对应的量化系数。
[0015]作为一种可能的实施方式,在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后量化,包括:
[0016]在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后,使用第一量化系数进行量化。
[0017]作为一种可能的实施方式,在所述卷积神经网络模型的输入数据为样本数据时,还包括:
[0018]根据所述样本数据及量化后卷积神经网络模型的输出数据,确定所述卷积神经网络模型的损失精度;
[0019]确定损失精度超过设定模型阈值时,提高当前卷积神经网络模型对权重量化的比特位数。
[0020]作为一种可能的实施方式,确定损失精度超过设定阈值时,提高当前卷积神经网络模型的量化的比特位数,包括:
[0021]对于所述卷积神经网络模型中每个block,计算该block的层损失精度;
[0022]对层损失精度最大的block,提高对权重量化的比特位数。
[0023]作为一种可能的实施方式,该方法还包括:
[0024]采用KL散度的方式确定每个block使用的第二量化系数,采用不饱和对称的方式确定每个block使用的第三量化系数。
[0025]根据本专利技术实施例的第二方面,提供一种对卷积神经网络模型量化的装置,包括:
[0026]权重量化模块,用于对于每个block,输入数据为量化后的整点型数据,将卷积层的权重乘以归一化BN层的缩放系数γ

后进行量化,得到量化后的权重;
[0027]偏置量化模块,用于在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后量化,得到量化后的偏置,将所述输入数据乘以量化后的权重,再加上量化后的偏置,将得到的整点型数据输入到归一化层;
[0028]归一化模块,用于在归一化层将输入的整点型数据除以量化时使用的第一量化系数,并乘以下一个block输入数据的第二量化系数,将得到的整点型数据输入到激活层;
[0029]激活运算模块,用于在激活层通过激活函数对输入的整点型数据运算后,将得到的整点型数据输入到下一个block。
[0030]作为一种可能的实施方式,权重量化模块具体还用于:
[0031]获取当前block的输入数据,若当前block的输入数据为浮点型数据时,利用输入数据的第二量化系数得到量化后的整点型数据。
[0032]作为一种可能的实施方式,所述BN层的缩放系数γ

,设置为下一个block输入数据的第二量化系数除以第一量化系数,所述平移系数β

设置为零。
[0033]作为一种可能的实施方式,所述第一量化系数为第二量化系数和第三量化系数的乘积,再除以乘法运算时的移位shift,所述第三量化系数为权重对应的量化系数。
[0034]作为一种可能的实施方式,偏置量化模块在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后量化,包括:
[0035]在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后,使用第一量化系数进行量化。
[0036]作为一种可能的实施方式,在所述卷积神经网络模型的输入数据为样本数据时,该装置还包括:
[0037]精度调整模块,用于根据所述样本数据及量化后卷积神本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对卷积神经网络模型量化的方法,所述卷积神经网络模型包括多个计算单元block,其特征在于,包括:对于每个block,输入数据为量化后的整点型数据,将卷积层的权重乘以归一化BN层的缩放系数γ

后进行量化,得到量化后的权重;在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后量化,得到量化后的偏置,将所述输入数据乘以量化后的权重,再加上量化后的偏置,将得到的整点型数据输入到归一化层;在归一化层将输入的整点型数据除以量化时使用的第一量化系数,并乘以下一个block输入数据的第二量化系数,将得到的整点型数据输入到激活层;在激活层通过激活函数对输入的整点型数据运算后,将得到的整点型数据输入到下一个block。2.根据权利要求1所述的方法,其特征在于,还包括:获取当前block的输入数据,若当前block的输入数据为浮点型数据时,利用输入数据的第二量化系数得到量化后的整点型数据。3.根据权利要求1所述的方法,其特征在于,所述BN层的缩放系数γ

,设置为下一个block输入数据的第二量化系数除以第一量化系数,所述平移系数β

设置为零。4.根据权利要求1所述的方法,其特征在于,所述第一量化系数为第二量化系数和第三量化系数的乘积,再除以乘法运算时的移位shift,所述第三量化系数为权重对应的量化系数。5.根据权利要求1~4任一所述的方法,其特征在于,在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后量化,包括:在卷积层将该block的偏置乘以缩放系数γ

,并与BN层的平移系数β

相加后,使用第一量化系数进行量化。6.根据...

【专利技术属性】
技术研发人员:吕朦
申请(专利权)人:珠海零边界集成电路有限公司
类型:发明
国别省市:

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

1