一种应用于电力边缘计算的神经网络的结构化动态量化方法与流程

    专利查询2023-05-21  103



    1.本发明属于机器学习神经网络压缩加速领域;尤其涉及一种应用于电力边缘计算的神经网络的结构化动态量化方法。


    背景技术:

    2.边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供最近端服务。对于电力系统来说,接入的设备数量以及使用者的数量都是十分庞大的,因此需要将部分计算在边缘完成。目前,神经网络已成为人工智能,计算机视觉等领域的强力算法,所涉及的应用也越来越广泛。神经网络的部署平台也越来越广,包括了云端服务器,终端手机设备以及边缘嵌入式设备等。神经网络对运算量与存储空间有庞大的需求,而边缘设备由于其性能和功耗均受限,因此将其搭载到边缘设备上挑战很大。
    3.量化是神经网络模型压缩和加速的一种通用方法,被广泛的应用在各种部署流程中。但是传统的量化方法对所有层使用相同的量化精度,而不同输入特征图的重要程度其实是不一样的,对所有特征图使用相同的量化精度显然存在浪费。尤其是在线性整流relu激活函数之后,所有为负数的值均会被转化为0。论文zhuoran song, bangqi fu, feiyang wu, zhaoming jiang, li jiang, naifeng jing, xiaoyao liang: drq: dynamic region-based quantization for deep neural network acceleration. isca 2020: 1010-1021提出了一种动态的基于区域的量化方法,可以根据不同区域的重要程度调整量化精度。但由于重要区域的分布不均匀,导致其在加速器中的运算单元的利用率不高。


    技术实现要素:

    4.本发明要解决的技术问题:提供一种应用于电力边缘计算的神经网络的结构化动态量化方法,以解决现有技术基于区域的量化方法,根据不同区域的重要程度调整量化精度。但由于重要区域的分布不均匀,导致其在加速器中的运算单元的利用率不高等技术问题。
    5.本发明技术方案:一种应用于电力边缘计算的神经网络的结构化动态量化方法,首先将全精度的32位浮点数网络量化至8位整型定点数;对输入特征图沿输入通道进行组划分,每组所包含的特征图像素个数定义为组规模groupsize(gs);将不同组的运算映射到加速器中的不同运算单元上进行。
    6.分组时为了避免运算单元间不平衡,要限制每组的运算量。
    7.每组的运算量确定方法为:根据非零激活函数的比例计算出稀疏度,根据稀疏度得出组预算,即每组最大的乘法次数。
    8.所述8位整型定点数被拆分为二个4位的定点数;分别为高4位h4和低4位l4。
    9.h4和l4在做乘法运算的时候方法相同,在最后的累加前将高4位的乘法结果左移4
    位对齐。
    10.从组中选择小于等于组预算gb个用于计算的4位数时,要保证均方误差最小。
    11.具体选择方法为:先从h4中从大到小选择非零项,若h4中非零项数少于组预算gb,则从l4中继续选择最大值,直到满足组预算。
    12.在实现过程中,验证该方法的实验环境为pytorch,使用的数据集为imagenet数据库,使用的深度神经网络模型包括resnet-18/50,vgg16和mobilenetv2。
    13.本发明的有益效果:本发明对神经网络输入特征图沿输入通道进行组划分,每组所包含的特征图像素个数定义为组规模groupsize(gs)。不同组的运算将映射到加速器中的不同运算单元上,为了避免运算单元间不平衡,本发明限制了每组的运算量。本发明提出了结构化的动态量化方法,极大地提高计算单元利用率,加速网络推理。
    14.解决了现有技术基于区域的量化方法,根据不同区域的重要程度调整量化精度。但由于重要区域的分布不均匀,导致其在加速器中的运算单元的利用率不高等技术问题。
    附图说明
    15.图1为本发明动态量化流程图;图2为本发明具体实施方式动态量化的代价以及误差示意图。
    具体实施方式
    16.以图1为例,详细介绍本发明提出的神经网络结构化的动态量化方法。
    17.首先,全精度的32位浮点数网络会被量化至8位整型定点数。该步骤在神经网络的部署中十分通用,并且不需要额外的训练也可以保持较好的网络分类性能。
    18.进而,本发明对输入特征图沿输入通道进行组划分,每组所包含的特征图像素个数定义为组规模groupsize(gs)。不同组的运算将映射到加速器中的不同运算单元上,为了避免运算单元间不平衡,本发明限制了每组的运算量。
    19.具体而言,本发明根据非零激活函数的比例,可以计算出稀疏度,在根据该稀疏度得出组预算groupbudget(gb),即每组最大的乘法次数。
    20.由于神经网络的特征值会呈现钟形分布,即大部分数值会集中0附近,高位均为0。
    21.进一步,本发明将8位整型定点数拆分为2个4位的定点数。分别即为高4位h4和低4位l4,h4和l4在做乘法运算的时候没有任何差别,只是在最后的累加前需要将高4位的乘法结果左移4位对齐。
    22.本例以组规模为4,组预算为3为例,其中这4个8位定点数分别为0,5,32,82。
    23.进一步,从组中选择小于等于组预算gb个用于计算的4位数。
    24.选取步骤要保证均方误差最小,因此先从h4中从大到小选择非零项。
    25.h4中非零项数为2少于组预算gb的3,则可以从l4中继续选择最大值,直到满足组预算。
    26.可以看到本例中,原本的82在经过动态量化后,由于组预算的限制变为了80。而在图2中的和其他量化方法的比较中,也可以看出,本发明的方法在较小的代价下也可以取得不错的量化结果。
    27.通过这样的规则化,组之间的运算量相同,不会有运算资源的浪费。
    28.在实现过程中,验证该方法的实验环境为pytorch,使用的数据集为imagenet数据库,使用的深度神经网络模型包括resnet-18/50,vgg16和mobilenetv2。
    29.以resnet18在imagenet数据集下的结果为例和均匀量化进行对比,将激活值均匀量化至4比特后网络训练的分类性能为66.14%准确率,而使用本发明的方法不仅可以将激活值量化至平均3.1比特,同时还能将网络性能保持在69.74%准确率。


    技术特征:
    1.一种应用于电力边缘计算的神经网络的结构化动态量化方法,其特征在于:首先将全精度的32位浮点数网络量化至8位整型定点数;对输入特征图沿输入通道进行组划分,每组所包含的特征图像素个数定义为组规模groupsize(gs);将不同组的运算映射到加速器中的不同运算单元上进行。2.根据权利要求1所述的一种应用于电力边缘计算的神经网络的结构化动态量化方法,其特征在于:分组时为了避免运算单元间不平衡,要限制每组的运算量。3.根据权利要求2所述的一种应用于电力边缘计算的神经网络的结构化动态量化方法,其特征在于:每组的运算量确定方法为:根据非零激活函数的比例计算出稀疏度,根据稀疏度得出组预算,即每组最大的乘法次数。4.根据权利要求1所述的一种应用于电力边缘计算的神经网络的结构化动态量化方法,其特征在于:所述8位整型定点数被拆分为二个4位的定点数;分别为高4位h4和低4位l4。5.根据权利要求4所述的一种应用于电力边缘计算的神经网络的结构化动态量化方法,其特征在于:h4和l4在做乘法运算的时候方法相同,在最后的累加前将高4位的乘法结果左移4位对齐。6.根据权利要求1所述的一种应用于电力边缘计算的神经网络的结构化动态量化方法,其特征在于:从组中选择小于等于组预算gb个用于计算的4位数时,要保证均方误差最小。7.根据权利要求6所述的一种应用于电力边缘计算的神经网络的结构化动态量化方法,其特征在于:具体选择方法为:先从h4中从大到小选择非零项,若h4中非零项数少于组预算gb,则从l4中继续选择最大值,直到满足组预算。8.根据权利要求1所述的一种应用于电力边缘计算的神经网络的结构化动态量化方法,其特征在于:在实现过程中,验证该方法的实验环境为pytorch,使用的数据集为imagenet数据库,使用的深度神经网络模型包括resnet-18/50,vgg16和mobilenetv2。

    技术总结
    本发明公开了一种应用于电力边缘计算的神经网络的结构化动态量化方法,首先将全精度的32位浮点数网络量化至8位整型定点数;对输入特征图沿输入通道进行组划分,每组所包含的特征图像素个数定义为组规模groupsize(GS);将不同组的运算映射到加速器中的不同运算单元上进行;解决了现有技术基于区域的量化方法,根据不同区域的重要程度调整量化精度。但由于重要区域的分布不均匀,导致其在加速器中的运算单元的利用率不高等技术问题。的运算单元的利用率不高等技术问题。的运算单元的利用率不高等技术问题。


    技术研发人员:徐长宝 辛明勇 高吉普 王宇 金学军 祝健杨 习伟 姚浩 陈军健 刘德宏
    受保护的技术使用者:南方电网数字电网研究院有限公司
    技术研发日:2022.02.14
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-16504.html

    最新回复(0)