神经网络模型的量化方法、电子设备及介质技术

技术编号:31632405 阅读:17 留言:0更新日期:2021-12-29 19:11
本申请涉及人工智能技术领域,具体涉及一种神经网络模型的量化方法、电子设备及介质。在本申请的神经网络模型的量化方法中,将神经网络模型各层的权重参数的正负值作为考虑要素,然后分别计算大于等于零的权重参数的收缩因子|scale

【技术实现步骤摘要】
神经网络模型的量化方法、电子设备及介质


[0001]本申请涉及人工智能
,具体涉及一种神经网络模型的量化方法、图像识别方法、电子设备及介质。

技术介绍

[0002]神经网络模型在训练完成后拥有几百甚至上千万的参数,例如每一层网络层中的权重参数和偏置参数等,并且这些参数在存储时都是基于浮点型的32比特位或者更高的比特位进行的。由于这些参数的数据量庞大,在整个卷积计算过程中会消耗大量的存储空间和计算资源。而量化目的就是压缩神经网络模型的大小,方便将神经网络模型部署到手机等计算资源受限的终端上。
[0003]目前的做法是将神经网络模型的上述参数映射至小于32比特位的值域当中,以减少神经网络模型占用的存储空间以及消耗的计算资源,但由于32比特位能够表示的数值范围大于小于32比特位能够表示的数值范围,所以在上述量化过程中,神经网络模型的权重参数或偏置参数会发生缺损,这种方式会造成神经网络模型的精度下降,影响用户的体验。

技术实现思路

[0004]有鉴于此,本申请提供了一种神经网络模型的量化方法、图像识别方法、电子设备及介质能够解决上述技术问题。下面对本申请的量化方法展开介绍。
[0005]第一方面,本申请提供了一种神经网络模型的量化方法,该方法包括:根据待量化数据的量化取值范围和目标值域的值域取值范围,确定将待量化数据量化到目标值域所需的第一量化参数和第二量化参数,其中,第一量化参数对应量化取值范围中大于0的待量化数据,第二量化参数对应量化取值范围中小于0的待量化数据;根据第一量化参数和第二量化参数,确定神经网络模型的第三量化参数;根据第三量化参数将待量化数据量化至目标值域。
[0006]上述方法在对神经网络模型中的待量化数据进行量化时,考虑到了神经网络模型中待量化数据的正负取值,并利用待量化数据中的正值对应的量化参数以及负值对应的量化参数,确定神经网络模型的最终量化参数(即第三量化参数,对应于下文具体实施例部分的神经网络的最终的收缩因子),使得神经网络模型的量化规模更加合理,进而量化后的神经网络模型的精度损失较小。其中,神经网络模型的精度损失可以用神经网络模型浮点推演最终结果与模型量化后模型结果之间的相似度来度量,可以理解为神经网络模型浮点推演的最终预测结果与量化后模型结果之间的相似度越高,则说明该神经网络模型量化的精度越高,具体实现时以特定模型的浮点推演结果与量化后推演结果差来呈现,以图像识别神经网络模型为例,假如浮点时运行推演网络得到的识别率是80%,量化后运行推演模型识别率79%或者更高,也就是越接近80%越好。
[0007]进一步地,在一种可能的实现方式中,上述待量化数据可以包括以下任意一种或多种:构成神经网络模型的多个网络层中,任意一层或多层网络层中的权重参数以及偏置
参数;或任意一层或多层网络层的输入数据。其中,权重参数表示与每个要素关联的实际值,表明了该要素在预测最终值中的重要性,以图像识别网络模型为例,权重参数表示该图像的某个像素在图像识别结果中的重要性。在一种可能的实现方式中,上述待量化数据还可以包括神经网络模型中各个网络层的激活函数,应理解,本申请待量化数据的种类、类型不作限制。
[0008]结合第一方面以及第一方面的可能的实现方式,在第一方面的另一种可能的实现方式中,上述输入数据包括图像数据。其中,图像数据可以是输入至神经网络模型中的原始图像数据,也可以是原始图像数据经过某一层网络层卷积运算处理过后的特征图像数据。在一种可能的实现方式中,以神经网络模型为图像识别网络模型、该图像识别网络模型包括100层网络层为例,那么图像数据可以是输入至该图像识别网络模型中的第一层网络层的原始图像数据,也可以是该原始图像数据经过该图像识别网络模型中任意一层或多层(例如,第10层或第20至第30层)网络层卷积运算处理后的特征图数据。
[0009]在一种可能的实现方式中,上述待量化数据的量化取值范围指的是由待量化数据中各个数据的取值确定的数值范围。举例来说明,假设待量化数据为[

22.00,

19.00,

17.00,10.00,20.00,30.00],那么待量化数据的取值范围则为大于等于

22.00且小于等于30.00。
[0010]应理解,在其他可能的实现方式中,神经网络模型的待量化数据可能存在明显高于和/或低于其他待量化数据的特别数据,在这种情况下,对于特别数据依然采用根据其他待量化数据确定的量化取值范围以及目标值域确定的量化参数进行量化,当该特别数据的量化结果大于目标值域的取值范围时,则会对该特别数据作截断处理,也即直接将目标值域的最大值或最小值作为该特别数据的量化结果。举例来说明,假设待量化数据为[

600.00,

22.00,

19.00,

17.00,10.00,20.00,30.00,200.00],目标值域为8比特位表示的数值范围[

128,127],那么该待量化数据的取值范围为大于等于

22.00且小于等于30.00,假设

600.00按照该取值范围以及目标值域的取值范围量化后的结果超出了[

128,127],那么就对

600.00的量化结果做截断处理,即直接将目标值域中与

600.00正负号相同的最小值最为

600.00的量化结果,也即

600.00的最终量化结果为

128。假设200.00按照该取值范围以及目标值域的取值范围量化后的结果没有超出[

128,127],那么则无需对200.00的量化结果作截断处理。其中,判断待量化数据中是否存在明显高于或低于其他待量化数据的特别数据的方法可以是,利用待量化数据的平均值与各个待量化数据的差值的大小来判断某个待量化数据是否明显高于或低于其他待量化数据,应理解,本申请对该方式不作限制。
[0011]可以理解,上述目标值域指的是待量化数据需要量化至的值域,在一种可能的实现方式中,目标值域可以为8比特位整型能够表示的数值范围[

128,127],目标值域也可以是其他数据类型能够表示的数值范围。需要理解,目标值域的确定与神经网络模型适用的电子设备的存储资源、计算资源等有关,在一种可能的实现方式中,当电子设备的存储资源、计算资源较大时,目标值域的取值范围也可以较大,以尽可能降低量化对神经网络模型精度的影响,当电子设备的存储资源、计算资源较小时,目标值域的取值范围也可以较小,以利于神经网络模型的移植。其中,关于目标值域的具体确定方式将在下文介绍,此处不再赘述。
[0012]在一种可能的实现方式中,上述第一量化参数即为下文具体实施例中的第一收缩因子,该第一量化参数对应于待量化数据中数值大于或等于0的待量化数据,上述第二量化参数即为本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络模型的量化方法,其特征在于,所述方法包括:根据待量化数据的量化取值范围和目标值域的值域取值范围,确定将所述待量化数据量化到所述目标值域所需的第一量化参数和第二量化参数,其中,所述第一量化参数对应所述量化取值范围中大于0的所述待量化数据,所述第二量化参数对应所述量化取值范围中小于0的所述待量化数据;根据所述第一量化参数和所述第二量化参数,确定所述神经网络模型的第三量化参数;根据所述第三量化参数将所述待量化数据量化至所述目标值域。2.根据权利要求1所述的方法,其特征在于,所述待量化数据包括以下任意一种或多种:构成所述神经网络模型的多个网络层中,任意一层或多层网络层中的权重参数以及偏置参数;或任意一层或多层网络层的输入数据。3.根据权利要求2所述的方法,其特征在于,所述输入数据包括图像数据。4.根据权利要求1所述的方法,其特征在于,所述第一量化参数对应的所述量化取值范围中的待量化数据等于0。5.根据权利要求1或4所述的方法,其特征自在于,所述第二量化参数对应的所述量化取值范围中的待量化数据等于0。6.根据权利要求1所述的方法,其特征在于,所述目标值域的取值范围包括正值区间和负值区间,以及所述根据待量化数据的量化取值范围和目标值域的值域取值范围,确定将所述待量化数据量化到所述目标值域所需的第一量化参数方法包括:确定所述量化取值范围中大于或等于0的所述待量化数据中的第一最大值,所述第一最大值与所述正值区间的最大值的比值为所述第一量化参数。7.根据权利要求6所述的方法,其特征在于,所述目标值域的取值范围包括正值区间和负值区间,以及所述根据待量化数据的量化取值范围和目标值域的值域取值范围,确定将所述待量化数据量化到所述目标值域所需的第二量化参数方法包括:确定所述量化取值范围中小于0的所述待量化数据中的第一最小值,所述第一最小值与所述负值区间的最小值的比值为所述第二量化参数。8.根据权利要求1所述的方法,其特征在于,所述根据第一量化参数和所述第二量化参数,确定所述神经网络模型的第三量化参数的方法包括:按照预设量,从0开始逐次增加所述第一量化参数的第一权重值,计算每个所述第一权重值对应的第一量化参数与第二权重值对应的第二量化参数的和,...

【专利技术属性】
技术研发人员:许礼武余宗桥韩冥生
申请(专利权)人:安谋科技中国有限公司
类型:发明
国别省市:

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

1