1.本发明属于机器学习神经网络技术领域;尤其涉及一种应用于电力边缘计算的神经网络的动态量化方法。
背景技术:
2.边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。对于电力系统来说,接入的设备数量以及使用者的数量都是十分庞大的,因此需要将部分计算在边缘完成。目前,神经网络已成为人工智能,计算机视觉等领域的强力算法,所涉及的应用也越来越广泛。神经网络的部署平台也越来越广,包括了云端服务器,终端手机设备以及边缘嵌入式设备等。神经网络对运算量与存储空间有庞大的需求,而这些平台由于其硬件资源不同,对网络的运算能力也差异甚大,这导致将其搭载到各种性能和功耗受限的边缘设备或者嵌入式设备上挑战很大。因此具有自适应配置的深度神经网络由于能够在具有不同资源预算的平台上快速灵活地部署而受到越来越多的关注。
3.量化是神经网络模型压缩和加速的一种通用方法,被广泛的应用在各种部署流程中。发明(cn 112686384 a)提出一种自适应比特位宽的神经网络量化方法,但其需要多次迭代才能完成量化训练并进行部署。论文qing jin,linjie yang,zhenyu liao:adabits:neural network quantization with adaptive bit-widths.cvpr 2020:2143-2153提出了adabits,一种自适应比特宽度的量化方法。其通过训练一个模型,在实际应用中可以切换至不同的量化比特位宽。但是该方法存在的问题在于,其对同一套全精度权值进行量化,该权值需要适配各种量化场景,而不同量化比特下权值的分布有差异。因此最终网络的分类精度可能受到较大影响,效果远差于单一精度的量化。并且其只适配几种差异较小的量化比特数如[4,5,6,8],对场景差异较大的[2,4,8,16]的量化效果较差。而实际的物联网iot边缘设备中,可能使用二值量化。手机等移动设备使用8比特定点量化。而服务器一般使用32位浮点数据进行运算,可以看出不同场景下,量化比特需求差异较大。
技术实现要素:
[0004]
本发明要解决的技术问题:提供一种应用于电力边缘计算的神经网络的动态量化方法,以解决现有技术针对电力边缘计算的神经网络的量化存在的需要多次迭代才能完成量化训练并进行部署及量化比特需求差异较大等技术问题。
[0005]
本发明技术方案:
[0006]
一种应用于电力边缘计算的神经网络的动态量化方法,在对电力边缘计算的神经网络模型训练时对每一种需要支持的量化比特均赋予一套全精度权值,并且通过对量化感知的训练让权值适应量化误差保证推理精度。
[0007]
在前向传播时,量化比特带宽是渐进增加的。
[0008]
支持[2,4,8,16]这4种精度的网络结构;4套全精度权值会分别量化为[2,2,4,8]
比特。
[0009]
4比特网络是在2比特网络的基础上再使用一个2比特网络对中间结果进行了修正和补偿来提升网络的分类性能,来达到单个4比特网络的效果。
[0010]
8比特网络是在4比特网络的基础上再使用一个4比特网络进行修正。
[0011]
采用精度切换的批标准化(batch normalization)即在来自不同精度的特征图结果进行相加之前,调整数据的均值和方差,避免不同分布数据相加。
[0012]
神经网络模型一个卷积层的输出表示为
[0013]
o=i*w+b
[0014]
其中i,w和b分布为输入特征图,权值和偏置;把w量化为高低两种精度,分别为w
hb
和w
lb
;其中hb>lb,均匀量化中w
lb
即为w
hb
的高位,用w
hb-lb
记为剩下的低位数据;偏置的计算量忽略不计;重新对输出进行转换为:
[0015]ohb
=i*w
hb
=i*(w
lb
*2
hb-lb
+w
hb-lb
)=o
lb
+o
hb-lb
。
[0016]
在训练过程中,不同子网络的输出汇总到同一个联合损失函数上共同进行优化。
[0017]
本发明的有益效果:
[0018]
本发明方法不是将单一高精度权值量化至各种不同低精度。因此其可支持的量化位宽范围较大。
[0019]
在训练过程中,不同子网络的输出汇总到同一个联合损失函数上共同进行优化。
[0020]
由于所有的权值均已量化,该发明在精度切换上十分简单,只需增加或者去除部分网络即可,相对应的计算量和存储空间需求也会发生改变。
[0021]
此外,不同量化精度的特征图之间的分布不同,如果直接将2比特的中间结果加到4比特网络中,两个网络都难以达到较好的训练结果;因此,本发明采用了精度切换的批标准化(batch normalization)。即在来自不同精度的特征图结果进行相加之前,调整数据的均值和方差,避免不同分布数据相加。
[0022]
由于批标准化模块的参数量已经运算量都较小,使用该方法对网络整体推理时间的影响可忽略不计。
[0023]
解决了在对电力边缘计算的神经网络模型训练时对每一种需要支持的量化比特均赋予一套全精度权值,并且通过对量化感知的训练让权值适应量化误差保证推理精度。
附图说明
[0024]
图1为本发明具体实施方式支持[2,4,8,16]这4种精度的网络结构示意图;
[0025]
图2为本发明具体实施方式普通不同精度间特征图累加方式示意图;
[0026]
图3为为本发明具体实施方式精度切换的批标准化(batch normalization)方法下不同精度间特征图累加方式示意图。
具体实施方式
[0027]
本发明在对电力边缘计算的神经网络模型训练时对每一种需要支持的量化比特都赋予一套全精度权值,并且通过对量化感知的训练让权值适应量化误差保证推理精度。本发明提出动态精度洋葱量化方法。与现有方法不同,本发明并不采用单一一套高精度权值,即所有低精度权值均从该高精度权值量化而来。
[0028]
一个卷积层的输出可以表示为
[0029]
o=i*w+b
[0030]
其中i,w和b分布为输入特征图,权值和偏置。把w量化为高低两种精度,分别为w
hb
和w
lb
。其中hb>lb,均匀量化中w
lb
即为w
hb
的高位,用w
hb-lb
记为剩下的低位数据。由于偏置的计算量可以忽略不计。重新对输出进行转换。
[0031]ohb
=i*w
hb
=i*(w
lb
*2
hb-lb
+w
hb-lb
)=o
lb
+o
hb-lb
[0032]
即当有了低精度的结果,只需要累加上差值部分,即可获得高精度结果,而不需要全部重新计算。
[0033]
在前向传播时,量化比特带宽是渐进增加的。
[0034]
以支持[2,4,8,16]这4种精度的网络结构为例,上述的4套全精度权值会分别量化为[2,2,4,8]比特。
[0035]
即4比特网络实际是在2比特网络的基础上,相当于再使用了一个2比特网络对中间结果进行了修正和补偿来提升网络的分类性能,来达到单个4比特网络的效果。
[0036]
同理8比特网络也是在4比特网络的基础上再使用一个4比特网络进行修正。低精度网络被包裹在高精度网络中,因此本发明称之为洋葱量化。
[0037]
虽然最终结果是由两部分或多部分网络共同计算得出,但是该方法保证了总的存储空间和比特计算量和使用单一网络几乎没有差异。
[0038]
由于该方法不是将单一高精度权值量化至各种不同低精度。因此其可支持的量化位宽范围较大。
[0039]
在训练过程中,不同子网络的输出汇总到同一个联合损失函数上共同进行优化。
[0040]
由于所有的权值均已量化,该发明在精度切换上十分简单,只需增加或者去除部分网络即可,相对应的计算量和存储空间需求也会发生改变。
[0041]
此外,不同量化精度的特征图之间的分布不同,如果直接将2比特的中间结果加到4比特网络中,两个网络都难以达到较好的训练结果。
[0042]
因此,本发明采用了精度切换的批标准化(batch normalization)。即在来自不同精度的特征图结果进行相加之前,调整数据的均值和方差,避免不同分布数据相加。
[0043]
由于批标准化模块的参数量已经运算量都较小,使用该方法对网络整体推理时间的影响可忽略不计。
[0044]
在实现过程中,验证该方法的实验环境为pytorch,使用的数据集包括cifar-10/100数据库和imagenet数据库,使用的深度神经网络模型包括resnet-18/20,vgg11和mobilenetv2。
技术特征:
1.一种应用于电力边缘计算的神经网络的动态量化方法,其特征在于:在对电力边缘计算的神经网络模型训练时对每一种需要支持的量化比特均赋予一套全精度权值,并且通过对量化感知的训练让权值适应量化误差保证推理精度。2.根据权利要求1所述的一种应用于电力边缘计算的神经网络的动态量化方法,其特征在于:在前向传播时,量化比特带宽是渐进增加的。3.根据权利要求1所述的一种应用于电力边缘计算的神经网络的动态量化方法,其特征在于:支持[2,4,8,16]这4种精度的网络结构;4套全精度权值会分别量化为[2,2,4,8]比特。4.根据权利要求3所述的一种应用于电力边缘计算的神经网络的动态量化方法,其特征在于:4比特网络是在2比特网络的基础上再使用一个2比特网络对中间结果进行了修正和补偿来提升网络的分类性能,来达到单个4比特网络的效果。5.根据权利要求3所述的一种应用于电力边缘计算的神经网络的动态量化方法,其特征在于:8比特网络是在4比特网络的基础上再使用一个4比特网络进行修正。6.根据权利要求1所述的一种应用于电力边缘计算的神经网络的动态量化方法,其特征在于:采用精度切换的批标准化(batch normalization)即在来自不同精度的特征图结果进行相加之前,调整数据的均值和方差,避免不同分布数据相加。7.根据权利要求1所述的一种应用于电力边缘计算的神经网络的动态量化方法,其特征在于:神经网络模型一个卷积层的输出表示为o=i*w+b其中i,w和b分布为输入特征图,权值和偏置;把w量化为高低两种精度,分别为w
hb
和w
lb
;其中hb>lb,均匀量化中w
lb
即为w
hb
的高位,用w
hb-lb
记为剩下的低位数据;偏置的计算量忽略不计;重新对输出进行转换为:o
hb
=i*w
hb
=i*(w
lb
*2
hb-lb
+w
hb-lb
)=o
lb
+o
hb-lb
。8.根据权利要求1所述的一种应用于电力边缘计算的神经网络的动态量化方法,其特征在于:在训练过程中,不同子网络的输出汇总到同一个联合损失函数上共同进行优化。
技术总结
本发明公开了一种应用于电力边缘计算的神经网络的动态量化方法,在对电力边缘计算的神经网络模型训练时对每一种需要支持的量化比特均赋予一套全精度权值,并且通过对量化感知的训练让权值适应量化误差保证推理精度;在前向传播时,量化比特带宽是渐进增加;解决了在对电力边缘计算的神经网络模型训练时对每一种需要支持的量化比特均赋予一套全精度权值,并且通过对量化感知的训练让权值适应量化误差保证推理精度。误差保证推理精度。误差保证推理精度。
技术研发人员:徐长宝 辛明勇 高吉普 王宇 金学军 祝健杨 习伟 姚浩 陈军健 刘德宏
受保护的技术使用者:南方电网数字电网研究院有限公司
技术研发日:2022.02.14
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-16506.html