首页 / 专利库 / 电脑零配件 / 多核处理器 / 一种基于神经网络的数据量化方法、装置及计算机可读存储介质

一种基于神经网络的数据量化方法、装置及计算机可读存储介质

阅读:393发布:2020-05-11

专利汇可以提供一种基于神经网络的数据量化方法、装置及计算机可读存储介质专利检索,专利查询,专利分析的服务。并且本 发明 提供了一种基于神经网络的数据量化方法、装置及计算机可读存储介质,该方法包括:根据待测 帧 序列中的任意一个预设帧确定神经网络的目标层的第一输出激活,并基于当前量化参数对第一输出激活执行量化操作;根据目标层的第一输出激活与目标量化位宽 迭代 更新当前量化参数;根据待测帧序列中任意一个预设帧的下一帧确定目标层的第二输出激活,并基于更新后的当前量化参数对第二输出激活执行量化操作。利用上述方法,可以减少量化误差,具有更好的数据量化效果。,下面是一种基于神经网络的数据量化方法、装置及计算机可读存储介质专利的具体信息内容。

1.一种基于神经网络的数据量化方法,其特征在于,包括:
根据待测序列中的任意一个预设帧确定所述神经网络的目标层的第一输出激活,并基于当前量化参数对所述第一输出激活执行量化操作;
根据所述目标层的第一输出激活与目标量化位宽迭代更新所述当前量化参数;
根据待测帧序列中所述任意一个预设帧的下一帧确定所述目标层的第二输出激活,并基于所述更新后的当前量化参数对所述第二输出激活执行量化操作。
2.由权利要求1所述的方法,其特征在于,若所述任意一个预设帧为所述待测帧序列中的非首帧,所述根据所述目标层的第一输出激活与目标量化位宽迭代更新所述当前量化参数,还包括:
确定所述目标层的第三输出激活,所述第三输出激活与所述待测帧序列中所述任意一个预设帧的前一帧或多帧相关联;
根据所述目标层的第一输出激活、第三输出激活与目标量化位宽执行所述迭代更新。
3.由权利要求2所述的方法,其特征在于,还包括:
采用预设滑动窗确定所述任意一个预设帧以及所述任意一个预设帧的前一帧或多帧,并根据所述预设滑动窗执行滑动平均处理或阿尔法平均处理对所述当前量化参数执行迭代更新。
4.由权利要求1所述的方法,其特征在于,还包括:
若所述任意一个预设帧为所述待测帧序列中的首帧,所述更新前的当前量化参数是预先通过向所述神经网络输入校正集而确定的初始量化参数。
5.由权利要求4所述的方法,其特征在于,还包括:
预先向所述神经网络输入所述校正集中的每个样本,并获取所述目标层的输出激活的统计分布信息;
根据所述目标层的输出激活的统计分布信息确定所述目标层的初始量化边界;
根据所述目标层的初始量化边界和所述目标量化位宽确定所述初始量化参数。
6.由权利要求5所述的方法,其特征在于,根据所述目标层的输出激活的统计分布信息确定所述目标层的初始量化边界,包括:
通过计算所述目标层的输出激活的相对熵;和/或通过获取所述目标层的输出激活的最大值与最小值;和/或通过对所述目标层的输出激活进行削峰处理而确定所述目标层的所述初始量化区间。
7.由权利要求1所述的方法,其特征在于,根据所述目标层的第一输出激活与目标量化位宽迭代更新所述当前量化参数,还包括:
根据所述目标层的第一输出激活的最大值/最小值、最大值区间/最小值区间、或直方图信息执行所述迭代更新。
8.由权利要求1所述的方法,其特征在于,所述迭代更新为替换式更新或加权式更新。
9.一种基于神经网络的数据量化装置,其特征在于,包括量化模和更新模块,其中,所述量化模块用于根据待测帧序列中的任意一个预设帧确定所述神经网络的目标层的第一输出激活,并基于当前量化参数对所述第一输出激活执行量化操作;
所述更新模块用于根据所述目标层的第一输出激活与目标量化位宽迭代更新所述当前量化参数;
所述量化模块用于根据待测帧序列中所述任意一个预设帧的下一帧确定所述目标层的第二输出激活,并基于所述更新后的当前量化参数对所述第二输出激活执行量化操作。
10.由权利要求9所述的装置,其特征在于,所述更新模块用于:
若所述任意一个预设帧为所述待测帧序列中的非首帧,确定所述目标层的第三输出激活,所述第三输出激活与所述待测帧序列中所述任意一个预设帧的前一帧或多帧相关联;
根据所述目标层的第一输出激活、第三输出激活与目标量化位宽执行所述迭代更新。
11.由权利要求10所述的装置,其特征在于,所述更新模块用于:
采用预设滑动窗确定所述任意一个预设帧以及所述任意一个预设帧的前一帧或多帧,并根据所述预设滑动窗执行滑动平均处理或阿尔法平均处理对所述当前量化参数执行迭代更新。
12.由权利要求9所述的装置,其特征在于,所述量化模块用于:
若所述任意一个预设帧为所述待测帧序列中的首帧,所述更新前的当前量化参数是预先通过向所述神经网络输入校正集而确定的初始量化参数。
13.由权利要求12所述的装置,其特征在于,还包括初始参数模块,用于:
预先向所述神经网络输入所述校正集中的每个样本,并获取所述目标层的输出激活的统计分布信息;
根据所述目标层的输出激活的统计分布信息确定所述目标层的初始量化边界;
根据所述目标层的初始量化边界和所述目标量化位宽确定所述初始量化参数。
14.由权利要求9所述的装置,其特征在于,所述更新模块用于:
通过计算所述目标层的输出激活的相对熵;和/或通过获取所述目标层的输出激活的最大值与最小值;和/或通过对所述目标层的输出激活进行削峰处理而确定所述目标层的所述初始量化区间。
15.由权利要求9所述的装置,其特征在于,所述更新模块用于:
根据所述目标层的第一输出激活的最大值/最小值、最大值区间/最小值区间、或直方图信息执行所述迭代更新。
16.由权利要求9所述的装置,其特征在于,所述迭代更新为替换式更新或加权式更新。
17.一种基于神经网络的数据量化装置,其特征在于,包括:
至少一个处理器;以及,
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:
根据待测帧序列中的任意一个预设帧确定所述神经网络的目标层的第一输出激活,并基于当前量化参数对所述第一输出激活执行量化操作;
根据所述目标层的第一输出激活与目标量化位宽迭代更新所述当前量化参数;
根据待测帧序列中所述任意一个预设帧的下一帧确定所述目标层的第二输出激活,并基于所述更新后的当前量化参数对所述第二输出激活执行量化操作。
18.一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被多核处理器执行时,使得所述多核处理器执行如权利要求1-8中任一项所述的方法。

说明书全文

一种基于神经网络的数据量化方法、装置及计算机可读存储

介质

技术领域

背景技术

[0002] 本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术
[0003] 近年来,随着神经网络的迅速发展,神经网络的计算性能不断提升,但是神经网络由于其计算量大的缺点限制了在边缘设备或低功耗设备上的部署与使用,数据量化是解决上述问题方法之一。然而现有技术中,对神经网络的数据执行量化所采用的量化参数可能并不适用于实际工作场景,影响量化性能。

发明内容

[0004] 针对上述现有技术执行神经网络的量化过程中所采用的量化参数可能并不适用于实际工作场景的问题。本发明实施例提出了一种神经网络的数据量化方法、装置及计算机可读存储介质,利用这种方法、装置及计算机可读存储介质,能够解决上述问题。
[0005] 本发明的实施例中提供了以下方案。
[0006] 一方面,提供了一种基于神经网络的数据量化方法,包括:根据待测序列中的任意一个预设帧确定神经网络的目标层的第一输出激活,并基于当前量化参数对第一输出激活执行量化操作;根据目标层的第一输出激活与目标量化位宽迭代更新当前量化参数;根据待测帧序列中任意一个预设帧的下一帧确定目标层的第二输出激活,并基于更新后的当前量化参数对第二输出激活执行量化操作。
[0007] 在一些可能的实施方式中,若任意一个预设帧为待测帧序列中的非首帧,根据目标层的第一输出激活与目标量化位宽迭代更新当前量化参数,还包括:确定目标层的第三输出激活,第三输出激活与待测帧序列中任意一个预设帧的前一帧或多帧相关联;根据目标层的第一输出激活、第三输出激活与目标量化位宽执行迭代更新。
[0008] 在一些可能的实施方式中,还包括:采用预设滑动窗确定任意一个预设帧以及任意一个预设帧的前一帧或多帧,并根据预设滑动窗执行滑动平均处理或阿尔法平均处理对当前量化参数执行迭代更新。
[0009] 在一些可能的实施方式中,还包括:若任意一个预设帧为待测帧序列中的首帧,更新前的当前量化参数是预先通过向神经网络输入校正集而确定的初始量化参数。
[0010] 在一些可能的实施方式中,还包括:预先向神经网络输入校正集中的每个样本,并获取目标层的输出激活的统计分布信息;根据目标层的输出激活的统计分布信息确定目标层的初始量化边界;根据目标层的初始量化边界和目标量化位宽确定初始量化参数。
[0011] 在一些可能的实施方式中,根据目标层的输出激活的统计分布信息确定目标层的初始量化边界,包括:通过计算目标层的输出激活的相对熵;和/或通过获取目标层的输出激活的最大值与最小值;和/或通过对目标层的输出激活进行削峰处理而确定目标层的初始量化区间。
[0012] 在一些可能的实施方式中,根据目标层的第一输出激活与目标量化位宽迭代更新当前量化参数,还包括:根据目标层的第一输出激活的最大值/最小值、最大值区间/最小值区间、或直方图信息执行迭代更新。
[0013] 在一些可能的实施方式中,迭代更新为替换式更新或加权式更新。
[0014] 第二方面,提供一种基于神经网络的数据量化装置,包括量化模和更新模块,其中,量化模块用于根据待测帧序列中的任意一个预设帧确定神经网络的目标层的第一输出激活,并基于当前量化参数对第一输出激活执行量化操作;更新模块用于根据目标层的第一输出激活与目标量化位宽迭代更新当前量化参数;量化模块用于根据待测帧序列中任意一个预设帧的下一帧确定目标层的第二输出激活,并基于更新后的当前量化参数对第二输出激活执行量化操作。
[0015] 在一些可能的实施方式中,更新模块用于:若任意一个预设帧为待测帧序列中的非首帧,确定目标层的第三输出激活,第三输出激活与待测帧序列中该任意一个预设帧的前一帧或多帧相关联;根据目标层的第一输出激活、第三输出激活与目标量化位宽执行迭代更新。
[0016] 在一些可能的实施方式中,更新模块用于:采用预设滑动窗确定任意一个预设帧以及任意一个预设帧的前一帧或多帧,并根据预设滑动窗执行滑动平均处理或阿尔法平均处理对当前量化参数执行迭代更新。
[0017] 在一些可能的实施方式中,量化模块用于:若任意一个预设帧为待测帧序列中的首帧,更新前的当前量化参数是预先通过向神经网络输入校正集而确定的初始量化参数。
[0018] 在一些可能的实施方式中,还包括初始参数模块,用于:预先向神经网络输入校正集中的每个样本,并获取目标层的输出激活的统计分布信息;根据目标层的输出激活的统计分布信息确定目标层的初始量化边界;根据目标层的初始量化边界和目标量化位宽确定初始量化参数。
[0019] 在一些可能的实施方式中,更新模块用于:通过计算目标层的输出激活的相对熵;和/或通过获取目标层的输出激活的最大值与最小值;和/或通过对目标层的输出激活进行削峰处理而确定目标层的初始量化区间。
[0020] 在一些可能的实施方式中,更新模块用于:根据目标层的第一输出激活的最大值/最小值、最大值区间/最小值区间、或直方图信息执行迭代更新。
[0021] 在一些可能的实施方式中,迭代更新为替换式更新或加权式更新。
[0022] 第三方面,提供一种基于神经网络的数据量化装置,包括:一个或者多个多核处理器存储器,用于存储一个或多个程序;当一个或多个程序被一个或者多个多核处理器执行时,使得一个或多个多核处理器实现:根据待测帧序列中的任意一个预设帧确定神经网络的目标层的第一输出激活,并基于当前量化参数对第一输出激活执行量化操作;根据目标层的第一输出激活与目标量化位宽迭代更新当前量化参数;根据待测帧序列中任意一个预设帧的下一帧确定目标层的第二输出激活,并基于更新后的当前量化参数对第二输出激活执行量化操作。
[0023] 第四方面,提供一种计算机可读存储介质,计算机可读存储介质存储有程序,当程序被多核处理器执行时,使得多核处理器执行如上述第一方面的方法。
[0024] 本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本发明实施例通过在神经网络的量化运算时采用自适应迭代更新的量化参数,可以减少量化误差,具有更好的量化效果。
[0025] 应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。附图说明
[0026] 通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的优点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:
[0027] 图1为一种示意性的卷积神经网络的结构示意图;
[0028] 图2为根据本发明一实施例的数据量化方法的流程示意图;
[0029] 图3为一种示意性的待测帧序列;
[0030] 图4为根据本发明另一实施例的数据量化方法的流程示意图;
[0031] 图5为根据本发明一实施例的数据量化装置的结构示意图;
[0032] 图6为根据本发明另一实施例的数据量化装置的结构示意图。
[0033] 在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

[0034] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0035] 在本发明中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。
[0036] 另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0037] 图1是一种示意性的卷积神经网络100的结构示意图。如图1所示,卷积神经网络可具有层结构,且特定层的输出可为下一层的输入。例如,卷积神经网络100可包括多个卷积层,第一层到第n层L1、L2、L3、...及Ln,且第一层到第n层L1、L2、L3、...及Ln中的每一者的输出可输入到下一层。在卷积神经网络100的各个层中依次包含卷积模块101、批归一化(batch normalization)模块102、激活模块103,其中各激活模块103的输出也即各个卷积层的输出,其中,由于卷积模块101、批归一化模块102和激活模块103中所执行的运算过程中存在大量的乘累加计算,为了确保计算精度,中间的结果需要保留一个位宽较宽的结果,比如浮点型32比特(以下简称FP32)数据,这导致了占用较大的存储空间与数据读写带宽。
[0038] 进一步地,本实施例为节省存储空间和数据读写带宽,可对卷积神经网络的每个层的输出激活数据进行量化处理,上述量化处理具体可以是将浮点型数(例如32比特浮点型)量化为更低比特的定点型数,以将卷积神经网络的每个层的输出激活数据压缩到定点型8比特(以下简称INT8)数据或更低,从而能够使得所使用的计算资源数目减少。本发明实施例优选应用于边缘计算场景。具体地,在边缘计算场景中,由于边缘计算设备通常受到较大的计算资源限制,一般需要对神经网络采用量化定点实现,也即,每次计算一层卷积就需要对激活模块的输出进行存储和读写,本发明实施例通过采用自适应的量化参数来对神经网络的每个层卷积的输出激活执行量化处理,从而可节省存储空间并提升了写入写出效率。
[0039] 图2示出了根据本发明实施例的基于神经网络的数据量化方法200的方法流程示意图。
[0040] 如图2所示,该方法200包括:
[0041] 步骤201:根据待测帧序列中的任意一个预设帧确定神经网络的目标层的第一输出激活,并基于当前量化参数对第一输出激活执行量化操作;
[0042] 步骤202:根据目标层的第一输出激活与目标量化位宽迭代更新当前量化参数;
[0043] 步骤203:根据待测帧序列中任意一个预设帧的下一帧确定目标层的第二输出激活,并基于更新后的当前量化参数对第二输出激活执行量化操作。
[0044] 具体地,本实施例所示出方法可以适用于神经网络的每个卷积层,上述神经网络的目标层可以是该神经网络中的任意一个卷积层,例如,上述神经网络可以是图1中所示出的卷积神经网络100,目标层可以是图1中所示出卷积神经网络100中第一层到第n层L1、L2、L3、...及Ln中的每一个。上述待测帧序列可以是具有时间连续性的待测数据帧流。其中上述任意一个预设帧可以为其中的指定一帧或指定多帧数据中的任意一个,当神经网络处理到该任意一个预设帧时执行一次当前量化参数的更新,以使当神经网络处理该任意一个预设帧的下一帧或后续多帧时采用更新后的当前量化参数,直至下一次更新。上述更新前或更新后的当前量化参数均包括针对神经网络的目标层的量化参数。举例来说,层1中输出的浮点中间值的分布范围和层2中使用的浮点中间值的分布范围可能彼此不同。本实施例可以基于上述当前量化参数将神经网络的目标层的输出激活量化为具有不同小数长度的定点表达值。上述目标量化位宽用于指示目标量化程度,比如可以是8比特、4比特等。可选地,上述任意一个预设帧也可以根据预设的更新规则而推断确定,比如可以每运行5帧更新一次当前量化参数等,本发明实施例不作具体限制。
[0045] 举例来说,图3示出了一种待测帧序列30,包括帧1,帧2,帧3,…,帧m,假设其中的帧1、帧3等为预设帧,本发明实施例可以向图1所示出的卷积神经网络100依次输入上述待测帧序列中的帧1,帧2,帧3,…,帧m以执行每个层的神经网络运算,在针对每一帧待测数据的神经网络运算过程中,依次获取该卷积神经网络的目标层的输出激活,并根据上述当前量化参数对上述每个层的输出激活执行量化操作,从而能够实现加速的神经网络运算。上述当前量化参数在神经网络运算过程中并不一成不变的,而是在处理到任意一个预设帧之后迭代更新,比如可以在上述神经网络处理完帧1之后,根据上述神经网络运算过程中帧1所对应的神经网络的目标层的输出激活更新一次当前量化参数,由于待测的待测帧序列具有时间连续性,前后帧数据的图像内容本身也具有连续性,因此,相比于在神经网络的在线推断阶段通过样本数据集确定的固定的量化参数,本发明实施例通过在神经网络的实际运算时采用可自适应迭代更新的量化参数,可以减少量化误差,具有更好的量化效果。
[0046] 基于图2的基于神经网络的数据量化方法,本申请的一些实施例还提供了该数据量化方法的一些具体实施方案,以及扩展方案,下面进行说明。
[0047] 在一种可能的实施方式中,若该任意一个预设帧为待测帧序列中的非首帧,在上述步骤202中,还包括:确定神经网络的目标层的第三输出激活,该第三输出激活与待测帧序列中该任意一个预设帧的前一帧或多帧相关联;根据神经网络的目标层的第一输出激活、第三输出激活与目标量化位宽执行迭代更新。
[0048] 举例来说,如图3所示,假设其中的帧1、帧3等为预设帧,在上述神经网络处理完帧3之后,不仅可以根据上述神经网络运算过程中帧3所对应的神经网络的目标层的输出激活更新当前量化参数,还可以进一步根据在帧3之前已由神经网络处理的一帧或多帧数据执行更新,比如可以进一步额外结合帧2所对应的神经网络的目标层的输出激活更新当前量化参数。又比如,可以进一步额外结合帧1、帧2所对应的神经网络的目标层的输出激活更新当前量化参数。优选地,可以根据神经网络的目标层的第一输出激活和第三激活输出的最大值/最小值、最大值区间/最小值区间、或直方图信息综合确定量化边界以执行上述更新。
[0049] 在一种可能的实施方式中,步骤202还可以包括:采用预设滑动窗确定任意一个预设帧以及任意一个预设帧的前一帧或多帧,并根据预设滑动窗执行滑动平均处理或阿尔法平均处理对当前量化参数执行迭代更新。
[0050] 其中,由预设滑动窗的步长和窗长确定该任意一个预设帧以及任意一个预设帧的前一帧或多帧。举例来说,假设预设滑动窗的步长为2,窗长为3,则可以根据预设滑动窗的步长在图3中可以选定帧2、帧4、帧6、…等作为预设帧,其中假设本实施例中的任意一个预设帧为其中的帧4,则对应于帧4的窗内数据包括(帧2、帧3帧4),则根据预设滑动窗的窗长确定任意一个预设帧的前一帧或多帧为帧2和帧3,进一步可以根据帧4得到第一输出激活,根据帧2、帧3得到第三输出激活。其中,滑动平均处理或阿尔法平均处理可以用来估计更新过程中所采用参数的局部均值,使得当前量化参数的迭代更新与一段时间内的取值有关,进而可以使得当前量化参数的更新更为平滑。
[0051] 在一种可能的实施方式中,在上述步骤201中,若该任意一个预设帧为待测帧序列中的首帧,更新前的当前量化参数是预先通过向神经网络输入校正集而确定的初始量化参数。
[0052] 举例来说,校正集可以包含多个样本,比如包含500-1000张图片,进而可以将校正集中的每一个样本输入到训练好的神经网络中进行正向运算,再统计神经网络的目标层输出激活的数据分布情况,根据该统计的数据分布情况确认初始量化参数,进一步地,把初始量化参数作为迭代初始值并执行迭代更新而确定当前量化参数。
[0053] 可选地,若任意一个预设帧为待测帧序列中的首帧,更新前的当前量化参数也可以是其它预设值,比如依经验而确定的预设值。
[0054] 在一种可能的实施方式中,图4示出了用于确定神经网络的初始量化参数的流程示意图400,上述流程可以发生在神经网络的推断(inference)过程中,如图4所示,包括:
[0055] 步骤401:向神经网络输入校正集中的每个样本,并获取神经网络的目标层的输出激活的统计分布信息;
[0056] 步骤402:根据目标层的输出激活的统计分布信息确定目标层的初始量化边界;
[0057] 步骤403:根据目标层的初始量化边界和目标量化位宽确定初始量化参数:
[0058] 举例来说,假设神经网络的输出激活为FP32数据,希望将其量化为INT8数据,上述量化过程相当于构建一种FP32数据向INT8数据的映射关系,将浮点类型数据的初始量化边界[Xmin,Xmax]映射到整数类型数据的目标区间(比如INT8数据为[-128,127])。本实施例中,可以通过统计上述神经网络对校正集中每个样本进行神经网络运算时的每个层的输出激活以形成该统计分布信息,并利用该统计分布信息确定对应于神经网络的目标层的初始量化边界[Xmin,Xmax]。当然,也可以直接采用神经网络的目标层的输出激活的最大值/最小值确定该初始量化边界[Xmin,Xmax]。
[0059] 在一种可能的实施方式中,上述步骤402中,进一步可以包括:通过计算目标层的输出激活的统计分布信息的相对熵(relative entropy),和/或通过获取目标层的输出激活的统计分布信息中的最大值与最小值,和/或通过对目标层的输出激活的统计分布信息进行削峰处理而确定目标层的初始量化区间。
[0060] 具体地,上述相对熵也被称为KL散度(Kullback-Leibler divergence)。上述对神经网络的目标层的输出激活的统计分布信息进行削峰处理可以包括在统计分布信息中丢弃顶部a%的数据并丢弃底部b%的数据,其中,a、b的取值范围可以是0.5至4,从而可以降低量化误差。
[0061] 在一种可能的实施方式中,步骤202还可以包括:根据目标层的第一输出激活的最大值/最小值、最大值区间/最小值区间、或直方图信息执行迭代更新。举例来说,可以通过上述最大值/最小值直接确定量化边界,也可以通过计算最大值区间/最小值区间中的区间中位值或均值确定量化边界,其中最大值区间/最小值区间可以是每个层的第一输出激活的前10%与后10%。还可以通过直方图信息选取量化边界,使得大于预设比例(比如90%)的数据均在该量化边界内。
[0062] 在一种可能的实施方式中,更新包括:替换式更新或加权式更新。其中,替换式更新是指将计算得到量化参数完全替代原有的当前量化参数,以形成更新后的当前量化参数。加权式更新是指对计算得到量化参数与原有的当前量化参数执行加权累加,以形成更新后的当前量化参数。
[0063] 基于相同的技术构思,本发明实施例还提供一种基于神经网络的数据量化装置,用于执行上述任一实施例所提供的基于神经网络的数据量化方法。图5为本发明实施例提供的一种基于神经网络的数据量化装置的结构示意图。
[0064] 如图5所示,该装置500包括量化模块501和更新模块502,其中,量化模块501用于根据待测帧序列中的任意一个预设帧确定神经网络的目标层的第一输出激活,并基于当前量化参数对第一输出激活执行量化操作;更新模块502用于根据目标层的第一输出激活与目标量化位宽迭代更新当前量化参数;以及,量化模块501还用于根据待测帧序列中任意一个预设帧的下一帧确定目标层的第二输出激活,并基于更新后的当前量化参数对第二输出激活执行量化操作。
[0065] 在一些可能的实施方式中,更新模块502用于:若任意一个预设帧为待测帧序列中的非首帧,确定目标层的第三输出激活,第三输出激活与待测帧序列中该任意一个预设帧的前一帧或多帧相关联;根据目标层的第一输出激活、第三输出激活与目标量化位宽执行迭代更新。
[0066] 在一些可能的实施方式中,更新模块502用于:采用预设滑动窗确定任意一个预设帧以及任意一个预设帧的前一帧或多帧,并根据预设滑动窗执行滑动平均处理或阿尔法平均处理对当前量化参数执行迭代更新。
[0067] 在一些可能的实施方式中,量化模块501用于:若任意一个预设帧为待测帧序列中的首帧,更新前的当前量化参数是预先通过向神经网络输入校正集而确定的初始量化参数。
[0068] 在一些可能的实施方式中,还包括初始参数模块,用于:预先向神经网络输入校正集中的每个样本,并获取目标层的输出激活的统计分布信息;根据目标层的输出激活的统计分布信息确定目标层的初始量化边界;根据目标层的初始量化边界和目标量化位宽确定初始量化参数。
[0069] 在一些可能的实施方式中,更新模块502用于:通过计算目标层的输出激活的相对熵;和/或通过获取目标层的输出激活的最大值与最小值;和/或通过对目标层的输出激活进行削峰处理而确定目标层的初始量化区间。
[0070] 在一些可能的实施方式中,更新模块502用于:根据目标层的第一输出激活的最大值/最小值、最大值区间/最小值区间、或直方图信息执行迭代更新。
[0071] 在一些可能的实施方式中,迭代更新为替换式更新或加权式更新。
[0072] 需要说明的是,本申请实施例中的基于神经网络的数据量化装置可以实现前述基于神经网络的数据量化方法的实施例的各个过程,并达到相同的效果和功能,这里不再赘述。
[0073] 图6为根据本申请一实施例的一种基于神经网络的数据量化装置的示意图,用于执行如图2所示出的基于神经网络的数据量化方法,该装置包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行:根据待测帧序列中的预设帧确定所述目标层的第一输出激活,并基于当前量化参数对所述第一输出激活执行量化操作;根据所述目标层的第一输出激活与目标量化位宽迭代更新所述当前量化参数;根据待测帧序列中所述任意一个预设帧的下一帧确定所述目标层的第二输出激活,并基于所述更新后的当前量化参数对所述第二输出激活执行量化操作。
[0074] 根据本申请的一些实施例,一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序被多核处理器执行时,使得所述多核处理器执行:根据待测帧序列中的预设帧确定所述目标层的第一输出激活,基于当前量化参数对所述第一输出激活执行量化操作;根据所述目标层的第一输出激活与目标量化位宽迭代更新所述当前量化参数;根据待测帧序列中所述任意一个预设帧的下一帧确定所述目标层的第二输出激活,并基于所述更新后的当前量化参数对所述第二输出激活执行量化操作。
[0075] 本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。
[0076] 本申请实施例提供的装置和计算机可读存储介质与方法是一一对应的,因此,装置、设备和计算机可读存储介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述装置、设备和计算机可读存储介质的有益技术效果。
[0077] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0078] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0079] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0080] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0081] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0082] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0083] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0084] 虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
[0085] 虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈