神经网络模型的运行、量化方法、电子设备及介质与流程

文档序号:31073630发布日期:2022-08-09 21:25阅读:55来源:国知局
1.本技术涉及量化
技术领域
:,特别涉及一种神经网络模型的运行、量化方法、电子设备及介质。
背景技术
::2.目前,随着深度学习技术在多个领域的快速应用,出现了大量的基于深度学习的神经网络模型。但神经网络模型结构一般都较为复杂且所占用的内存较大,因此需要对神经网络模型进行量化压缩以减小内存占用及加快模型的推理速度。3.神经网络模型包括多个节点(或神经元),每个节点代表一种特定的输出函数,称为激励函数或激活函数,其中有一些节点的函数类型为线性函数,即该节点的输入数据及与输出数据的关系为线性关系,例如,存在一个节点的输入是x,输出为w*x+b,其中w是该节点的权重,b是偏差。因为该节点为线性函数,当该节点的输入数据较大时,会存在输出值特别大的情况,当该输出值特别大,在经过下一个神经元的计算,可能会获得更大的输出值,而对较大数值的计算过程将需要极大算力。因此,在神经网络模型的每两个节点间一般会引入一个非线性激活函数,以使得两个节点中的前一个节点的输出值限定在一定的范围内。例如,在两个节点间可以设置非线性的sigmoid函数,sigmoid函数的输出结果为(0,1),因此可以将这两个节点中前一个节点的输出值映射在(0,1)之间。4.目前,对于非线性函数的量化方式一般为将非线性函数的整个输入数据范围内的数据和对应的量化数据做成对应的显示查找表(look-up-table,lut)部署于神经网络模型中,在神经网络模型的实际运算中,可以直接根据非线性函数的输入数据从lut中获取对应的量化数据。但以非线性函数的整个输入数据范围内的数据和对应的量化数据进行lut的构造,将会占用较大内存。技术实现要素:5.为解决上述问题,本技术实施例提供了一种神经网络模型的运行方法,应用于电子设备,其特征在于,所述神经网络模型包括非线性函数运算;并且6.所述方法包括:7.在所述神经网络模型的运行过程中,获取所述非线性函数的输入数据;8.从量化映射表中获取对应于所述输入数据的量化数据,其中,在所述量化映射表中:9.对于属于第一类截断范围的输入数据,对应所述输入数据的量化数据为所述量化映射表中的与所述第一类截断范围中的输入数据数值相同的数据所对应的量化数据;10.对于属于第二类截断范围内的数据,对应所述输入数据的量化数据为所述量化映射表中的所述第一类截断范围的端点数据所对应的量化数据。11.可以理解,上述非线性函数包括但不仅限于sigmoid函数或tanh函数。12.可以理解,本技术实施例中只以第一类截断范围内的输入数据与其对应的量化数据构建量化映射表,能够有效减小量化映射表的占用内存。且对于第二类截断范围内的输入数据均为对应输出数据较为接近的数据,对于属于第二类截断范围内的数据,对应所述输入数据的量化数据直接定义为量化映射表中的第一类截断范围的端点数据所对应的量化数据,可以在保证量化精度的情况下,减小量化映射表的占用内存,从而进一步减小神经网络模型的占用内存及神经网络模型的运行内存。13.在上述第一方面一种可能的实现中,所述第一类截断范围的端点数据包括第一截断值和第二截断值;14.所述对于属于第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中的所述第一类截断范围的端点数据所对应的量化数据;包括:15.对于以所述第一截断值为其中一个端点的第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中所述第一截断值所对应的量化数据;16.对于以所述第二截断值为其中一个端点的第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中所述第二截断值所对应的量化数据。17.在上述第一方面一种可能的实现中,所述第一类截断范围的确定方式包括:18.按照预设规则从所述非线性函数的输入数据范围中选取多个待确定截断范围;19.获取在所述非线性函数采用选取不同待确定截断范围的情况下,所述神经网络模型对目标输入数据进行处理,所获取的对应不同待确定截断范围的各量化输出结果;20.获取所述神经网络模型对所述目标输入数据进行处理,所获取的非量化输出结果;21.基于对应不同待确定截断范围的各量化输出结果和所述非量化输出结果的对比情况,获取初始第一类截断范围。22.可以理解,本技术实施例中,基于上述方案,能够从多维度进行非线性函数的截断范围的判断,能够在有效降低量化映射表的占用内存的同时,有效减小包含该非线性函数的模型的量化精度损失,提升模型性能。23.在上述第一方面一种可能的实现中,所述基于对应不同待确定截断范围的各量化输出结果和所述非量化输出结果的对比情况,获取初始第一类截断范围;包括:24.基于至少一个维度,对所述对应不同待确定截断范围的各量化输出结果和非量化输出结果进行对比,确定出各维度下符合预设条件的量化输出结果;25.把所述各维度下符合预设条件的量化输出结果所对应的待确定截断范围作为对应维度的目标截断范围;26.基于每个维度对应的目标截断范围获取所述初始第一类截断范围。27.在上述第一方面一种可能的实现中,所述基于至少一个维度,对所述对应不同待确定截断范围的各量化输出结果和非量化输出结果进行对比,确定出各维度下符合预设条件的量化输出结果;包括:28.将所述各量化输出结果中,与非量化输出结果在各维度对比下,最为接近的量化输出结果作为各维度下符合预设条件的量化输出结果。29.在上述第一方面一种可能的实现中,所述基于每个维度对应的目标截断范围获取所述第一类截断范围;包括:30.给所述每个维度对应的目标截断范围的最小端点值预设对应的权重;31.基于所述每个维度对应的目标截断范围的最小端点值以及所述最小端点值的权重,确定所述初始第一类截断范围的第一截断值;32.将所述第一截断值的相反数作为所述第二截断值;33.将所述第一截断值和所述第二截断值之间的输入数据范围作为所述初始第一类截断范围。34.在上述第一方面一种可能的实现中,所述至少一个维度包括均方根误差维度、相似度维度、信噪比维度和kl散度维度。35.在上述第一方面一种可能的实现中,按照预设规则从所述非线性函数的输入数据范围中选取多个待确定截断范围;包括:36.获取所述非线性函数的输入数据范围的最小值;37.从所述输入数据范围的最小值开始,按照设定间隔依次选取多个待确定第一截断点;38.将所述第一截断点的相反数作为第二截断点,将每个所述第一截断点与对应的所述第二截断点之间的数据范围作为一个待确定截断范围。39.在上述第一方面一种可能的实现中,确定所述第二类截断范围的方式包括:40.将所述输入数据范围中除所述第一类截断范围之外的数据范围作为所述第二类截断范围。41.在上述第一方面一种可能的实现中,所述第一类截断范围的确定方式还包括:42.获取与所述非线性函数的前一个函数的输出数据范围;43.在所述前一个函数的输出数据范围满足预设条件的情况下,将所述初始第一类截断范围作为确定的第一类截断范围;所述预设条件包括:所述前一个函数的输出数据范围的最小端点值小于所述初始第一类截断范围的第一截断值,最大端点值大于所述初始第一类截断范围的最大截断值。44.可以理解,本技术实施例中,可以根据与非线性函数相连接的前一个节点或函数的输出数据进行截断范围的调整,从而进一步提高量化精度。45.在上述第一方面一种可能的实现中,所述第一类截断范围的确定方式还包括:46.在所述前一个函数的输出数据范围不满足所述预设条件的情况下,基于所述前一个函数的输出数据范围对所述初始第一类截断范围进行优化,以获取确定的第一类截断范围。47.在上述第一方面一种可能的实现中,所述基于所述前一个函数的输出数据范围对所述初始第一类截断范围进行优化,以获取第一类截断范围;包括:48.将所述前一个函数的输出数据范围作为第一组待确定截断范围;49.将所述前一个函数的输出数据范围的最小端点值和所述初始第一类截断范围的第二截断值之间的数据范围作为第二组待确定截断范围;50.将所述前一个函数的输出数据范围的最大端点值和所述初始第一类截断范围的第一截断值之间的数据范围作为第三组待确定截断范围;51.获取在所述非线性函数分别采用第一组待确定截断范围、所述第二组待确定截断范围和第三组待确定截断范围下,所述神经网络模型对目标输入数据进行处理,所获取的对应不同待确定截断范围的各量化输出结果;52.获取所述神经网络模型对所述目标输入数据进行处理,所获取的非量化输出结果;53.基于所述第一组待确定截断范围、所述第二组待确定截断范围和所述第三组待确定截断范围分别对应的各量化输出结果和所述非量化输出结果的对比情况,获取第一类截断范围。54.在上述第一方面一种可能的实现中,所述基于所述第一组待确定截断范围、所述第二组待确定截断范围和所述第三组待确定截断范围分别对应的各量化输出结果和所述非量化输出结果的对比情况,获取第一类截断范围;包括:55.基于至少一个维度,对所述第一组待确定截断范围、所述第二组待确定截断范围和所述第三组待确定截断范围分别对应的各量化输出结果和非量化输出结果进行对比,确定出各维度下符合预设条件的量化输出结果;56.将各维度下符合预设条件的量化输出结果所对应的待确定截断范围作为对应维度的目标截断范围;57.基于每个维度对应的目标截断范围获取所述第一类截断范围。58.第二方面,本技术实施例提供一种神经网络模型的量化方法,其特征在于,所述神经网络模型包括非线性函数运算;并且59.所述方法包括:60.获取所述非线性函数的输入数据范围;61.确定所述非线性函数的输入数据范围的第一类截断范围和第二类截断范围;62.对于所述第一类截断范围的输入数据,基于所述第一类截断范围内的数据和所述第一类截断范围内数据对应的量化数据构建量化映射表;63.对于属于第二类截断范围内的数据,设定对应所述输入数据的量化数据为所述量化映射表中的所述第一类截断范围的端点数据所对应的量化数据。64.可以理解,本技术实施例中只以第一类截断范围内的输入数据与其对应的量化数据构建量化映射表,能够有效减小量化映射表的占用内存。且对于第二类截断范围内的输入数据均为对应输出数据较为接近的数据,对于属于第二类截断范围内的数据,对应所述输入数据的量化数据直接定义为量化映射表中的第一类截断范围的端点数据所对应的量化数据,可以在保证量化精度的情况下,减小量化映射表的占用内存,从而进一步减小神经网络模型的占用内存。65.在上述第二方面一种可能的实现中,所述第一类截断范围的端点数据包括第一截断值和第二截断值;66.所述对于属于第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中的所述第一类截断范围的端点数据所对应的量化数据;包括:67.对于以所述第一截断值为其中一个端点的第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中所述第一截断值所对应的量化数据;68.对于以所述第二截断值为其中一个端点的第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中所述第二截断值所对应的量化数据。69.在上述第二方面一种可能的实现中,所述第一类截断范围的确定方式包括:70.按照预设规则从所述非线性函数的输入数据范围中选取多个待确定截断范围;71.获取在所述非线性函数采用选取不同待确定截断范围的情况下,所述神经网络模型对目标输入数据进行处理,所获取的对应不同待确定截断范围的各量化输出结果;72.获取所述神经网络模型对所述目标输入数据进行处理,所获取的非量化输出结果;73.基于对应不同待确定截断范围的各量化输出结果和所述非量化输出结果的对比情况,获取初始第一类截断范围。74.可以理解,本技术实施例中,基于上述方案,能够从多维度进行非线性函数的截断范围的判断,能够在有效降低量化映射表的占用内存的同时,有效减小包含该非线性函数的模型的量化精度损失,提升模型性能。75.在上述第二方面一种可能的实现中,所述基于对应不同待确定截断范围的各量化输出结果和所述非量化输出结果的对比情况,获取初始第一类截断范围;包括:76.基于至少一个维度,对所述对应不同待确定截断范围的各量化输出结果和非量化输出结果进行对比,确定出各维度下符合预设条件的量化输出结果;77.把所述各维度下符合预设条件的量化输出结果所对应的待确定截断范围作为对应维度的目标截断范围;78.基于每个维度对应的目标截断范围获取所述初始第一类截断范围。79.在上述第二方面一种可能的实现中,所述基于至少一个维度,对所述对应不同待确定截断范围的各量化输出结果和非量化输出结果进行对比,确定出各维度下符合预设条件的量化输出结果;包括:80.将所述各量化输出结果中,与非量化输出结果在各维度对比下,最为接近的量化输出结果作为各维度下符合预设条件的量化输出结果。81.在上述第二方面一种可能的实现中,所述基于每个维度对应的目标截断范围获取所述第一类截断范围;包括:82.给所述每个维度对应的目标截断范围的最小端点值预设对应的权重;83.基于所述每个维度对应的目标截断范围的最小端点值以及所述最小端点值的权重,确定所述初始第一类截断范围的第一截断值;84.将所述第一截断值的相反数作为所述第二截断值;85.将所述第一截断值和所述第二截断值之间的输入数据范围作为所述初始第一类截断范围。86.在上述第二方面一种可能的实现中,所述至少一个维度包括均方根误差维度、相似度维度、信噪比维度和kl散度维度。87.在上述第二方面一种可能的实现中,按照预设规则从所述非线性函数的输入数据范围中选取多个待确定截断范围;包括:88.获取所述非线性函数的输入数据范围的最小值;89.从所述输入数据范围的最小值开始,按照设定间隔依次选取多个待确定第一截断点;90.将所述第一截断点的相反数作为第二截断点,将每个所述第一截断点与对应的所述第二截断点之间的数据范围作为一个待确定截断范围。91.在上述第二方面一种可能的实现中,确定所述第二类截断范围的方式包括:92.将所述输入数据范围中除所述第一类截断范围之外的数据范围作为所述第二类截断范围。93.在上述第二方面一种可能的实现中,所述第一类截断范围的确定方式还包括:94.获取与所述非线性函数的前一个函数的输出数据范围;95.在所述前一个函数的输出数据范围满足预设条件的情况下,将所述初始第一类截断范围作为确定的第一类截断范围;所述预设条件包括:所述前一个函数的输出数据范围的最小端点值小于所述初始第一类截断范围的第一截断值,最大端点值大于所述初始第一类截断范围的最大截断值。96.可以理解,本技术实施例中,可以根据与非线性函数相连接的前一个节点或函数的输出数据进行截断范围的调整,从而进一步提高量化精度。97.在上述第二方面一种可能的实现中,所述第一类截断范围的确定方式还包括:98.在所述前一个函数的输出数据范围不满足所述预设条件的情况下,基于所述前一个函数的输出数据范围对所述初始第一类截断范围进行优化,以获取确定的第一类截断范围。99.在上述第二方面一种可能的实现中,所述基于所述前一个函数的输出数据范围对所述初始第一类截断范围进行优化,以获取第一类截断范围;包括:100.将所述前一个函数的输出数据范围作为第一组待确定截断范围;101.将所述前一个函数的输出数据范围的最小端点值和所述初始第一类截断范围的第二截断值之间的数据范围作为第二组待确定截断范围;102.将所述前一个函数的输出数据范围的最大端点值和所述初始第一类截断范围的第一截断值之间的数据范围作为第三组待确定截断范围;103.获取在所述非线性函数分别采用第一组待确定截断范围、所述第二组待确定截断范围和第三组待确定截断范围下,所述神经网络模型对目标输入数据进行处理,所获取的对应不同待确定截断范围的各量化输出结果;104.获取所述神经网络模型对所述目标输入数据进行处理,所获取的非量化输出结果;105.基于所述第一组待确定截断范围、所述第二组待确定截断范围和所述第三组待确定截断范围分别对应的各量化输出结果和所述非量化输出结果的对比情况,获取第一类截断范围。106.在上述第二方面一种可能的实现中,所述基于所述第一组待确定截断范围、所述第二组待确定截断范围和所述第三组待确定截断范围分别对应的各量化输出结果和所述非量化输出结果的对比情况,获取第一类截断范围;包括:107.基于至少一个维度,对所述第一组待确定截断范围、所述第二组待确定截断范围和所述第三组待确定截断范围分别对应的各量化输出结果和非量化输出结果进行对比,确定出各维度下符合预设条件的量化输出结果;108.将各维度下符合预设条件的量化输出结果所对应的待确定截断范围作为对应维度的目标截断范围;109.基于每个维度对应的目标截断范围获取所述第一类截断范围。110.第三方面,本技术实施例提供一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是所述电子设备的所述一个或多个处理器之一,用于执行上述运行方法或上述量化方法。111.第四方面,本技术实施例提供一种可读介质,所述可读介质上存储有指令,该指令在电子设备上执行时使机器执行上述的运行方法或权利要求14所述的量化方法。112.第五方面,本技术实施例提供一种计算机程序产品,包括指令,所述指令用于实现上述运行方法或上述量化方法。附图说明113.图1a根据本技术的一些实施例,示出了一种非线性函数的示意图;114.图1b根据本技术的一些实施例,示出了一种非线性函数的示意图;115.图2根据本技术的一些实施例,示出了一种非线性函数的示意图;116.图3根据本技术的一些实施例,示出了一种电子设备的框图;117.图4根据本技术的一些实施例,示出了一种非线性函数量化方法的流程示意图;118.图5根据本技术的一些实施例,示出了一种非线性函数量化方法的流程示意图;119.图6根据本技术的一些实施例,示出了一种非线性函数的第一类截断范围的与前一个函数的输出数据的截断范围的对比示意图;120.图7根据本技术的一些实施例,示出了一种非线性函数的第一类截断范围的与前一个函数的输出数据的截断范围的对比示意图;121.图8根据本技术的一些实施例,示出了一种非线性函数的第一类截断范围的与前一个函数的输出数据的截断范围的对比示意图;122.图9根据本技术的一些实施例,示出了一种非线性函数的第一类截断范围的与前一个函数的输出数据的截断范围的对比示意图。具体实施方式123.本技术实施例包括但不限于针对神经网络模型的运行、量化方法、电子设备及介质。124.为清楚理解本技术的实施方案,下面对本技术实施例中提及的非线性函数进行简要介绍。125.可以理解,本技术实施例提及的非线性函数可以描述为:当输入数据x的值越来越接近输入数据范围的端点值,则输出数据y的值的下降幅度或上升幅度逐渐趋于平缓,且接近于输出数据范围的最小值或最大值的一类非线性函数。126.可以理解,当非线性函数为周期性函数时,上述描述可以适用于周期性函数的一个周期。127.例如,如图1a所示,示出了本技术实施例中一种非线性函数的示意图,图1a所示的非线性函数的输入数据范围为(x1,x2),输出数据范围为(y1,y2)。其中,x1与x2互为相反数。当输入数据x=0时,对应的输出数据y为y1和y2的中间值。当输入数据x的值越来越接近x1,则输出数据y的值越接近y1,且y的下降幅度逐渐趋于平缓;当输入数据x的值越来越接近x2,则输出数据y的值越接近y2,且y的上升幅度逐渐趋于平缓。128.在一些实施例中,本技术实施例提供的非线性函数也可以为如图1b所示的非线性函数,其输入数据范围为(x1,x2),输出数据范围为(y1,y2)。其中,当输入数据x的值越来越接近x1,则输出数据y的值越接近y1,且y的下降幅度逐渐趋于平缓;当输入数据x的值越来越接近x2,则输出数据y的值越接近y1,且y的下降幅度逐渐趋于平缓。129.可以理解,本技术实施例中提及的上述非线性函数只是举例说明,在一些实施例中,使用本技术实施例中提及的量化方法的非线性函数也可以为其他函数。130.如前所述,现有技术中一般将非线性函数的整个输入数据范围内的数据和对应的量化数据做成对应的显示查找表(look-up-table,lut)部署于神经网络模型中,会占用较大的内存。131.例如,对于图1a中所示的非线性函数,目前现有技术中会将非线性函数的整个输入数据范围内(x1,x2)的数据和对应的量化数据做成对应的显示查找表(look-up-table,lut)部署于神经网络模型中,会占用较大的内存。132.从图1a中可以看出,当输入数据x的值越来越接近x1,则输出数据y的值越接近y1,且y的下降幅度逐渐趋于平缓;当输入数据x的值越来越接近x2,则输出数据y的值越接近y2,且y的上升幅度逐渐趋于平缓。133.当输入数据x处于[x1,x10]之间时,输出数据y的值均接近于y1,当输入数据x处于[x20,x2]之间时,输出数据y的值几乎均接近于y2。[0134]可以理解,由于神经网络模型中位于该非线性函数后边的节点是固定的,因此当该非线性函数的输出数据均比较接近时,通过该非线性函数的后边的节点的数据处理后所获得的神经网络模型的最终输出结果在一定程度上基本为相同的。因此,对于对应的输出数据均比较接近的这些输入数据,只利用这些输入数据中的部分数据以及该部分数据对应的量化数据构建lut表,以减小lut表占用的内存。[0135]具体的,本技术实施例提供一种神经网络模型的量化方法,神经网络模型中存在上述提及的非线性函数。首先确定非线性函数的输入数据范围的第一类截断范围和第二类截断范围。对于第一类截断范围,将第一类截断范围内的数据和该第一类截断范围内数据对应的量化数据构建量化映射表。其中,第一截断范围(如图1a所示的[x10,x20])的两个端点值可以称为第一截断值(如图1a所示的x10)和第二截断值(如图1a所示的x20)。[0136]对于第二类截断范围,可以根据预设量化规则确定第二类截断范围内输入数据所对应的量化数据。其中,预设量化规则可以为:将与第一截断值(如图1a所示的x10)相邻的第二类截断范围(如图1a所示的[x1,x10))内的输入数据对应的量化数据(或者以第一截断值为其中一个端点值的第二类截断范围内的输入数据所对应的量化数据),统一设定为第一截断值(如图1a所示的x10)的量化数据。将与第二截断值(如图1a所示的x20)相邻的第二类截断范围(如图1a所示的(x20,x2])内的输入数据对应的量化数据(或者以第二截断值为其中一个端点值的第二类截断范围内的输入数据所对应的量化数据),统一设定为第二截断值(如图1a所示的x20)对应的量化数据。[0137]其中,输入数据范围的第二类截断范围可以为输出数据均接近于或逐渐趋近于设定值的数据范围。输入数据范围的第一类截断范围可以为处于两个第二类截断范围之间的数据范围。[0138]可以理解,上述非线性函数包括但不仅限于sigmoid函数或tanh函数。[0139]可以理解,本技术实施例中只以第一类截断范围内的输入数据与其对应的量化数据构建量化映射表,能够有效减小量化映射表的占用内存。且对于第二类截断范围内的输入数据均为对应输出数据较为接近的数据,对于属于第二类截断范围内的数据,对应所述输入数据的量化数据直接定义为量化映射表中的第一类截断范围的端点数据所对应的量化数据,可以在保证量化精度的情况下,减小量化映射表的占用内存,从而进一步减小神经网络模型的占用内存。[0140]基于上述量化方法,对应的本技术实施例中提供一种神经网络模型的运行方法,包括:在神经网络模型的实际运行中,获取所述非线性函数的输入数据;[0141]从量化映射表中获取对应于所述输入数据的量化数据,其中,在所述量化映射表中:对于属于第一类截断范围的输入数据,对应所述输入数据的量化数据为所述量化映射表中的与所述第一类截断范围中的输入数据数值相同的数据所对应的量化数据;对于属于第二类截断范围内的数据,对应所述输入数据的量化数据为所述量化映射表中的所述第一类截断范围的端点数据所对应的量化数据。[0142]其中,对于以所述第一截断值为其中一个端点的第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中所述第一截断值所对应的量化数据;对于以所述第二截断值为其中一个端点的第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中所述第二截断值所对应的量化数据。[0143]如此,在神经网络模型的运行过程中,可以基于构建的量化映射表或者预设量化规则确定输入数据对应的量化数据。即当待输入数据处于第一类截断范围内时,通过量化映射表查询对应的量化数据。当输入数据处于第二类截断范围内时,基于上述预设量化规则从量化映射表中确定对应的量化数据。例如,当输入数据为与第一截断值(如图1a所示的x10)相邻的第二类截断范围(如图1a所示的[x1,x10))内的输入数据时,从量化映射表中查询第一截断值(如图1a所示的x10)对应的量化数据作为输入数据对应的量化数据。当输入数据为与第二截断值(如图1a所示的x20)相邻的第二类截断范围(如图1a所示的(x20,x2])内的输入数据时,从量化映射表中查询第二截断值(如图1a所示的x10)对应的量化数据作为输入数据对应的量化数据。[0144]其中,第一类截断范围内的数据对应的量化数据的获取方式为:根据截断范围和预设的量化比特数确定量化映射系数,根据量化映射系数对截断范围内数据进行量化获取截断范围内数据对应的量化数据。其中,预设的量化比特数可以为8比特、16比特等。[0145]其中,第一类截断范围的确定方法,具体包括:[0146]按照预设规则从输入数据范围中选取多个待确定截断范围;获取在非线性函数采用选取的不同待确定截断范围下,对同一输入数据进行同一量化方式量化所获取的模型最终输出结果(称为量化输出结果);并获取在不对上述输入数据进行量化的情况下,所获取的模型最终输出结果(称为非量化输出结果)。[0147]从多个维度对量化输出结果和非量化输出结果进行对比,确定出每个维度下与非量化输出结果最为接近的量化输出结果作为每个维度下的最优量化输出结果,并把每个维度中最优的量化输出结果对应的待确定截断范围作为每个维度下最优的截断范围。[0148]给每个维度的最优截段范围的最小值(截断范围的最小边界值)预设不同的权重,将多个维度的最优截断范围的最小值的权重加和作为确定截断范围的最小值,将确定截断范围的最小值的相反数作为确定截断范围的最大值(最优截断范围的最大边界值),将该确定截断范围的最小值和确定截断范围的最大值之间的数值范围作为第一类截断范围。[0149]上述选取多个待确定截断范围的预设规则可以为:从初始输入数据范围的最小值开始,按照设定间隔选取多个待确定第一截断点,将每个第一截断点对应的相反数作为第二截断点,将每个第一截断点与对应的第二截断点之间的数值范围作为一个待确定截断范围。[0150]上述多个维度可以为均方根误差维度、相似度维度、信噪比维度、kl散度(kullback–leiblerdivergence,简称kld)维度等。[0151]可以理解,本技术实施例中,基于上述方案,能够从多维度进行非线性函数的截断范围的判断,能够在有效降低量化映射表的占用内存的情况下,有效减小包含该非线性函数的模型的量化精度损失,提升模型性能。[0152]可以理解,本技术实施例涉及的非线性函数可以为sigmoid函数、tanh函数等具备一个x值只对应一个y值这一特征的非线性函数。[0153]下边以非线性函数sigmoid函数为例,说明本技术实施例中确定第一类截断范围的方式。[0154]例如,图2示出了一种的非线性函数sigmoid的示意图,其中,sigmoid函数通常用σ(x)或sig(x)表示,其具体表达式为1/(1+exp(-x))。[0155]如图2所示,假设sigmoid函数的输入数据范围为(-8,8),输出数据范围为(0,1)。当输入数据x的值越来越接近-8,则输出数据y的值越接近0,且下降幅度逐渐趋于平缓;当输入数据x的值越来越接近8,则输出数据y的值越接近1,且上升幅度逐渐趋于平缓。其中确定sigmoid函数的第一类截断范围的方式举例如下:[0156]从初始输入数据范围的最小值-8开始,按照设定间隔0.1选取30个待确定第一截断点,即第一截断点可以为-7.9,-7.8,,......-5.0等数值。然后将-7.9,-7.8,......-5.0等数值的相反数7.9,7.8,......5.0作为第二截断点,即待确定截断范围为[-7.9,7.9],[-7.8,7.8]......[-5.0,5.0]。[0157]预设对每个待确定截断范围内的数据进行量化时,选取的量化比特数为8比特的情况下,每个待确定截断范围对应的量化映射系数,例如,待确定截断范围[-7.9,7.9]对应的量化系数为128/7.9,待确定截断范围[-7.8,7.8]对应的量化系数为128/7.8,待确定截断范围[-5.0,5.0]对应的量化系数为128/5.0。[0158]分别以上述待确定截断范围为[-7.9,7.9],[-7.8,7.8]......[-5.0,5.0]各自对应的量化系数128/7.9,128/7.8......128/5.0作为sigmoid函数的输入数据的量化系数;获取在sigmoid函数选择不同量化系数的情况下,神经网络模型在对同一输入数据a1进行处理,所获取的对应的模型输出结果(称为量化输出结果),例如为b1,b2......b30。[0159]然后获取在未对sigmoid函数进行量化的情况下,获取神经网络模型对输入数据a1进行处理,所获取对应的模型输出结果(称为非量化输出结果),例如为c1。[0160]从四个维度,例如为均方根误差维度、相似度维度、信噪比维度和kl散度维度,将量化输出结果b1,b2......b30和非量化输出结果c1分别进行对比,确定出多个量化输出结果b1,b2......b30中与非量化输出结果c1均方根误差最小的量化输出结果,例如为b1;确定出多个量化输出结果b1,b2......b30中与非量化输出结果c1相似度最大的量化输出结果,例如为b2;确定出多个量化输出结果b1,b2......b30中与非量化输出结果c1信噪比最大的量化输出结果,例如为b3;确定出多个量化输出结果b1,b2......b30中与非量化输出结果c1相比kl散度最小的量化输出结果,例如为b30。[0161]从而可以确定出每个维度最优量化输出结果b1,b2,b3和b30对应的待确定截断范围分别为[-7.9,7.9],[-7.8,7.8],[-7.7,7.7]和[-5.0,5.0]。[0162]假设给均方根误差维度、相似度维度、信噪比维度和kl散度维度分配的预设权重分别为10%,20%,30%和40%,则获取的第一类截断范围的最小值为-7.9*10%+(-7.8)*20%+(-7.7)*30%+(-5.0)*40%=-6.66,则第一类截断范围的最大值为6.66,从而第一类截断范围为[-6.66,6.66]。[0163]下面在介绍本技术实施例提供的对非线性函数的量化算法之前,对本技术实施例包含非线性函数的神经网络模型所部署的电子设备进行详细的介绍,电子设备可以为服务器、计算机、手机等各种电子设备。[0164]图3为本技术实施例中提供的电子设备1400的框图。图3示意性地示出了根据多个实施例的示例电子设备1400。在一个实施例中,电子设备1400可以包括一个或多个处理器1404,与处理器1404中的至少一个连接的系统控制逻辑1408,与系统控制逻辑1408连接的系统内存1412,与系统控制逻辑1408连接的非易失性存储器(nvm)1416,以及与系统控制逻辑1408连接的网络接口1420。[0165]在一些实施例中,处理器1404可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1404可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在电子设备1400采用enb(evolvednodeb,增强型基站)101或ran(radioaccessnetwork,无线接入网)控制器102的实施例中,处理器1404可以被配置为执行各种符合的实施例。[0166]可以理解,本技术实施例中,处理器1404可以用于执行本技术实施例中提供的针对神经网络模型的量化或运行方法。[0167]在一些实施例中,系统控制逻辑1408可以包括任意合适的接口控制器,以向处理器1404中的至少一个和/或与系统控制逻辑1408通信的任意合适的设备或组件提供任意合适的接口。[0168]在一些实施例中,系统控制逻辑1408可以包括一个或多个存储器控制器,以提供连接到系统内存1412的接口。系统内存1412可以用于加载以及存储数据和/或指令。在一些实施例中电子设备1400的内存1412可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dram)。[0169]nvm/存储器1416可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,nvm/存储器1416可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如hdd(harddiskdrive,硬盘驱动器),cd(compactdisc,光盘)驱动器,dvd(digitalversatiledisc,数字通用光盘)驱动器中的至少一个。[0170]nvm/存储器1416可以包括安装电子设备1400的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1420通过网络访问nvm/存储1416。[0171]特别地,系统内存1412和nvm/存储器1416可以分别包括:指令1424的暂时副本和永久副本。指令1424可以包括:由处理器1404中的至少一个执行时导致电子设备1400实施本技术实施例中提及的针对非线性函数的量化方法的指令。在一些实施例中,指令1424、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑1408,网络接口1420和/或处理器1404中。[0172]网络接口1420可以包括收发器,用于为电子设备1400提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1420可以集成于电子设备1400的其他组件。例如,网络接口1420可以集成于处理器1404的,系统内存1412,nvm/存储器1416,和具有指令的固件设备(未示出)中的至少一种,当处理器1404中的至少一个执行所述指令时,电子设备1400实现本技术实施例中提及的针对非线性函数的量化方法。[0173]网络接口1420可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1420可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。[0174]在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑封装在一起,以形成系统封装(sip)。在一个实施例中,处理器1404中的至少一个可以与用于系统控制逻辑1408的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(soc)。[0175]电子设备1400可以进一步包括:输入/输出(i/o)设备1432。i/o设备1432可以包括用户界面,使得用户能够与电子设备1400进行交互;外围组件接口的设计使得外围组件也能够与电子设备1400交互。[0176]在一些实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像照相机和/或摄像机),手电筒(例如,发光二极管闪光灯)和键盘。[0177]下面对本技术实施例提供的神经网络模型的量化方法进行详细介绍。图4示出了本技术实施例提供的一种神经网络模型的量化方法的流程示意图,该神经网络模型的量化方法可以由上述电子设备1400的处理器1404执行。如图4所示,量化方法包括:[0178]401:按照设定规则选取非线性函数的输入数据范围的多个待确定截断范围。[0179]可以理解,本技术实施例提及的非线性函数可以描述为:当输入数据x的值越来越接近输入数据范围的端点值,则输出数据y的值的下降幅度或上升幅度逐渐趋于平缓,且接近于输出数据范围的最小值或最大值的一类非线性函数。[0180]可以理解,当非线性函数为周期性函数时,上述描述可以适用于周期性函数的一个周期。[0181]可以理解,非线性函数的输入数据范围可以通过所部署的神经网络模型对多个样本进行训练获取。[0182]可以理解,预设规则可以为从非线性函数的初始输入数据范围的最小值开始,按照设定间隔选取多个待确定第一截断点,将每个待确定第一截断点对应的相反数作为待确定第二截断点,将每个待确定第一截断点与对应的待确定第二截断点之间的数值范围作为一个待确定截断范围。[0183]如前所述,假设非线性函数的输入数据范围为(-8,8),设定间隔为0.1,则选取待确定截断范围的方式为:从初始输入数据范围的最小值-8开始,按照设定间隔0.1选取30个待确定第一截断点,即第一截断点可以为-7.9,-7.8,,......-5.0等数值。然后将-7.9,-7.8,......-5.0等数值的相反数7.9,7.8,......5.0作为第二截断点,即待确定截断范围为[-7.9,7.9],[-7.8,7.8]......[-5.0,5.0]。[0184]可以理解,上述待确定第一截断点的数量可以根据实际需求设定,可实施的,可以设置为初始输入数据范围最小值的绝对值与设定间隔的比值,例如,上述举例中,待确定第一截断点的数量可以为-8的绝对值与0.1的比值,即80个,如此设置,可以遍历整个输入数据范围,以选取最优截断范围。[0185]在一些实施例中,上述预设规则也可以为在x的负半轴或正半轴任意选取一个数值作为第一个待确定第一截断点,在该第一截断点的附近按照设定间隔选取设定数量的第一截断点。将每个待确定第一截断点对应的相反数作为待确定第二截断点,将每个待确定第一截断点与对应的待确定第二截断点之间的数值范围作为一个待确定截断范围。[0186]402:获取在非线性函数采用不同待确定截断范围,同一量化方式下,同一输入数据对应的模型量化输出结果。[0187]可以理解,不同的待确定截断范围在对应的同一量化方式具有不同的对应的量化系数,因此,可以获取在同一量化方式下,上述每个待确定截断范围对应的量化系数。[0188]其中,量化系数的确定方式为根据量化方式确定出量化数值范围,将量化数值范围的最大绝对值和待确定截断范围的最大绝对值的比值作为该待确定截断范围的量化系数。[0189]例如,对于上述待确定截断范围[-7.9,7.9]的最大绝对值为7.9,量化方式若采取8比特化,则量化数值范围为[-128,127],量化数值范围的最大绝对值为128,则待确定截断范围[-7.9,7.9]对应的量化映射系数为128/7.9。同理,待确定截断范围[-7.8,7.8]对应的量化系数为128/7.8,待确定截断范围[-5.0,5.0]对应的量化系数为128/5.0。[0190]可以理解,本技术实施例中,对应的模型量化输出结果可以为模型的最终输出结果。例如,该模型为语音识别模型,则模型的输入数据可以为语音,最终模型输出结果可以为语音对应的文字。[0191]可以理解,上述同一输入数据可以指输入非线性函数的输入数据,也可以指输入模型的初始输入数据。[0192]即本技术实施例中,在获取对应的模型量化输出结果时,需要保证模型中除了上述非线性函数的截断范围的变化,模型的其他内容,例如,模型的输入数据,模型中各函数的配置等,均是一致的。[0193]例如,以上述待确定截断范围为[-7.9,7.9],[-7.8,7.8]......[-5.0,5.0]分别对应的量化系数128/7.9,128/7.8......128/5.0作为sigmoid函数的输入数据的量化系数;对输入sigmoid函数同一输入数据a1进行处理,可以分别获取对应的最终模型输出结果(量化输出结果),例如为b1,b2...b30。[0194]403:获取在未对非线性函数进行量化的情况下,同一输入数据对应的模型的非量化输出结果。[0195]可以理解,本技术实施例中,还可以获取到在未对非线性函数进行量化的情况下,同一输入数据对应的模型的非量化输出结果作为标准输出,便于与上述获取的多个量化输出结果进行对比,以获取最优的量化输出结果,从而判断出最优的截断范围。[0196]例如,可以获取在未对sigmoid函数进行量化的情况下,对输入数据a1进处理,获取对应的模型输出结果(非量化输出结果),例如为c1。[0197]404:将多个量化输出结果和非量化输出结果基于多维度对比,获取第一类截断范围和第二类截断范围。[0198]可以理解,将多个模型量化输出结果和非量化输出结果基于多维度对比,获取第一类截断范围可以包括:[0199]从多个维度对量化输出结果和非量化输出结果进行对比,确定出每个维度下最优的量化输出结果,并把该每个维度中最优的量化输出结果对应的待第一类截断范围作为该维度下最优的截断范围。[0200]给每个维度的最优截段范围的最小值预设不同的权重,将多个维度的最优截断范围的最小值的权重加和作为第一类截断范围的最小值,将第一类截断范围的最小值的相反数作为第一类截断范围的最大值,将该第一类截断范围的最小值和第一类截断范围的最大值之间的数值范围作为第一类截断范围。[0201]可以理解,上述多个维度可以为均方根误差维度、相似度维度、信噪比维度、kl散度(kullback–leiblerdivergence,简称kld)维度等。[0202]例如,如前述图2中所示的sigmoid函数,从均方根误差维度、相似度维度、信噪比维度和kl散度维度将量化输出结果b1,b2......b30和非量化输出结果c1分别进行对比,确定出多个量化输出结果b1,b2......b30中与非量化输出结果c1均方根误差最小的量化输出结果,例如为b1;确定出多个量化输出结果b1,b2......b30中与非量化输出结果c1相似度最大的量化输出结果,例如为b2;确定出多个量化输出结果b1,b2......b30中与非量化输出结果c1信噪比最大的量化输出结果,例如为b3;确定出多个量化输出结果b1,b2......b30中与非量化输出结果c1相比kl散度最小的量化输出结果,例如为b30。[0203]从而可以确定出每个维度最优量化输出结果b1,b2,b3和b30对应的待第一类截断范围分别为[-7.9,7.9],[-7.8,7.8],[-7.7,7.7]和[-5.0,5.0]。[0204]假设给均方根误差维度、相似度维度、信噪比维度和kl散度维度分配的预设权重分别为10%,20%,30%和40%,则获取的第一类截断范围的最小值为-7.9*10%+(-7.8)*20%+(-7.7)*30%+(-5.0)*40%=-6.66,则第一类截断范围的最大值为6.66,第一类截断范围为[-6.66,6.66]。则第二类截断范围为输入数据范围的最小端点值与第一类截断范围的最小值之间的范围,以及第一类截断范围的最小值与输入数据范围的最大端点值之间的范围。例如,图2中所示的sigmoid函数分别为[-8,-6.66)和(6.66,8]。[0205]可以理解,若包含上述非线性函数的模型为语音识别模型,则模型的输入数据可以为语音,最终模型输出结果可以为语音对应的文字,即上述模型输出结果b1,b2,b3和b30以及c1均可以为语音对应的文字。[0206]405:以第一类截断范围内的数据和第一类截断范围内的数据对应的量化数据构建量化映射表,并设定针对于第二类截断范围的预设量化规则。[0207]其中,预设量化规则可以为:将与第一截断值相邻的第二类截断范围的内的输入数据对应的量化数据,统一设定为第一截断值的量化数据。将与第二截断值相邻的第二类截断范围的内的输入数据对应的量化数据,统一设定为第二截断值的量化数据。[0208]其中,该截断范围内的数据的获取方式为:对截断范围进行等间距采样,获取截断范围内的多个数据。[0209]第一类截断范围内数据的对应的量化数据的获取方式为:根据预设量化方式确定出截断范围内的数据的量化数值范围;将量化数值范围的最大绝对值和第一类截断范围的最大绝对值的比值作为该第一类截断范围的量化系数。[0210]根据量化映射系数对第一类截断范围内数据进行量化获取对应的量化数据。具体的,可以将第一类截断范围内数据与量化映射系数的乘积作为对应的量化数据。[0211]然后以第一类截断范围内的数据和截断范围内的数据对应的量化数据构建量化映射表。其中,量化映射表可以为lut。[0212]可以理解,在一些实施例中,也可以不进行量化映射表的构建,只对应存储量化映射系数,当获取到输入数据后,直接根据量化映射系数以及预设量化规则获取对应的量化数据。[0213]在一些实施例中,预设量化规则为设定小于第一截断值的输入数据所对应的量化数据为第一截断值对应的量化数据,大于第二截断值的输入数据所对应的量化数据为第二截断值对应的量化数据。[0214]如此,在神经网络模型的实际运行中,可以基于构建的量化映射表或者设定的量化规则确定输入数据对应的量化数据。即当待输入数据处于截断范围内时,通过量化映射表查询对应的量化数据。当输入数据小于第一截断值的数据或大于第二截断值时,基于上述预设量化规则确定对应的量化数据。[0215]可以理解,当量化映射表中不存在与输入数据相同的数据时,则将量化映射表中与输入数据最邻近的数据的量化数据作为输入数据的量化数据。[0216]406:基于量化映射表或预设量化规则确定对应的量化数据。[0217]可以理解,本技术实施例中,在神经网络模型的运行中,可以基于构建的量化映射表或者预设量化规则确定输入数据对应的量化数据。对于属于第一类截断范围的输入数据,对应所述输入数据的量化数据为所述量化映射表中的与所述第一类截断范围中的输入数据数值相同的数据所对应的量化数据;对于属于第二类截断范围内的数据,对应所述输入数据的量化数据为所述量化映射表中的所述第一类截断范围的端点数据所对应的量化数据。[0218]所述第一类截断范围的端点数据包括第一截断值和第二截断值;[0219]对于以所述第一截断值为其中一个端点的第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中所述第一截断值所对应的量化数据;对于以所述第二截断值为其中一个端点的第二类截断范围内的输入数据,对应所述输入数据的量化数据为所述量化映射表中所述第二截断值所对应的量化数据。[0220]即当待输入数据处于第一类截断范围内时,通过量化映射表查询对应的量化数据。当输入数据处于第二类截断范围内时,基于上述预设量化规则从量化映射表中确定对应的量化数据。即将小于第一截断值的数据所对应的量化数据赋值为第一截断值对应的量化数据,大于第二截断值的数据所对应的量化数据赋值为第二截断值对应的量化数据。[0221]例如,当输入数据为与第一截断值(如图1a所示的x10)相邻的第二类截断范围(如图1a所示的[x1,x10))内的输入数据时,从量化映射表中查询第一截断值(如图1a所示的x10)对应的量化数据作为输入数据对应的量化数据。当输入数据为与第二截断值(如图1a所示的x20)相邻的第二类截断范围(如图1a所示的(x20,x2])内的输入数据时,从量化映射表中查询第二截断值(如图1a所示的x10)对应的量化数据作为输入数据对应的量化数据。[0222]可以理解,本技术实施例中,基于上述方案,能够从多维度进行非线性函数的最终截断范围的判断,能够在有效降低量化映射表的占用内存的情况下,有效减小包含该非线性函数的神经网络模型的量化精度损失,提升模型性能。[0223]在一些实施例中,在上述步骤404中获取到第一类截断范围之后,还可以根据与非线性函数相连的前一个函数的输出数据的取值范围对第一类截断范围进行进一步优化调整,可以理解,与非线性函数相连的前一个函数是指神经网络模型中,非线性函数的前一个节点,该节点的输出数据需要作为非线性函数的输入数据。调整方法如图5所示,具体包括:[0224]501:获取与非线性函数相连的前一个函数的输出数据的取值范围。[0225]可以理解,与非线性函数相连的前一个函数的输出数据存在截断范围,则上述与非线性函数相连的前一个函数的输出数据的取值范围可以指前一个函数的截断范围。[0226]502:判断与非线性函数相连的前一个函数的输出数据的取值范围是否满足预设条件,预设条件可以为与非线性函数相连的前一个函数的输出数据的取值范围的最小值小于上述确定出的非线性函数的第一类截断范围的最小值,前一个函数的输出数据的取值范围的最大值大于上述确定出的非线性函数的第一类截断范围的最大值。若判断结果为是,则转至503,将上述图4中获取的第一类截断范围,作为非线性函数的第一类确定截断范围。[0227]若判断结果为否,则转至504,对上述图4中获取的确定截断范围进行进一步优化,获得优化后的截断范围,将优化后的截断范围,作为非线性函数的第一类确定截断范围。[0228]可以理解,不满足上述预设条件情况可以为:若前一个函数的输出数据的截断范围大于等于上述确定出的非线性函数的第一类确定截断范围的最小值和/或前一个函数的输出数据的截断范围的最大值小于等于上述确定出的非线性函数的第一类确定截断范围的最小值。[0229]503:将上述图4中获取的第一类截断范围,作为非线性函数的第一类确定截断范围。[0230]可以理解,如图6所示,例如,假设图4中获取的非线性函数的第一类截断范围为[x10,x20],与非线性函数相连的前一个函数的输出数据的截断范围为[t1,t2],其中,t1《x10,t2》x20,则与非线性函数相连的前一个函数的输出数据中(t1,x10)范围内的数据很大可能对应的输出数据均是趋于0的数据,(x20,t2)范围内的数据很大可能对应的输出数据均是趋于1的数据。因此,将上述图4中获取的第一类截断范围[x10,x20],作为非线性函数的第一类确定截断范围。[0231]504:对上述图4中获取的确定截断范围进行进一步优化,获得优化后的截断范围,将优化后的截断范围作为非线性函数的第一类确定截断范围。[0232]可以理解,例如,假设图4中获取的非线性函数的确定截断范围为[x10,x20],与非线性函数相连的前一个函数的输出数据的截断范围为[t1,t],其中,如图7所示,t1《x10,t2《x20;或者如图8所示t1》x10,t2《x20;再或者如图9所示t1》x10,t2《x20;则可以对图5中确定出的截断范围进行进一步优化,获取最优截断范围。[0233]其中,进一步的优化方式为:将前一个函数的输出数据的截断范围的最小值和输出数据的截断范围的最大值作为一组待确定截断范围;[0234]将前一个函数的输出数据的截断范围的最小值和上述确定出的非线性函数的截断范围的最大值作为一组待确定截断范围;[0235]将前一个函数的输出数据的截断范围的最大值和上述确定出的非线性函数的截断范围的最小值作为一组待确定截断范围;[0236]参照上述402-404中的方式从上述三组待确定截断范围中确定出最优的截断范围作为非线性函数的最终第一类截断范围。[0237]即获取在所述非线性函数分别采用上述三组待确定截断范围下,所述神经网络模型对目标输入数据进行处理,所获取的对应不同待确定截断范围的各量化输出结果;[0238]获取神经网络模型对目标输入数据进行处理,所获取的非量化输出结果;[0239]基于上述三组待确定截断范围分别对应的各量化输出结果和非量化输出结果的对比情况,获取最优的第一类截断范围。[0240]其中,基于上述三组待确定截断范围分别对应的各量化输出结果和非量化输出结果的对比情况,获取最优的第一类截断范围;包括:[0241]基于至少一个维度,对第一组待确定截断范围、第二组待确定截断范围和第三组待确定截断范围分别对应的各量化输出结果和非量化输出结果进行对比,确定出各维度下符合预设条件的量化输出结果;把符合预设条件的量化输出结果所对应的待确定截断范围作为对应维度的目标截断范围;基于每个维度对应的目标截断范围获取最优的第一类截断范围。[0242]其中,基于每个维度对应的目标截断范围获取最优的第一类截断范围;包括:[0243]给每个维度对应的目标截断范围的最小端点值预设对应的权重;基于每个维度对应的目标截断范围的最小端点值以及最小端点值的权重,确定最优的第一类截断范围的第一截断值;将第一截断值的相反数作为第二截断值;将第一截断值和第二截断值之间的输入数据范围作为最优的第一类截断范围。[0244]例如,对于上述图7中所示非线性函数的确定截断范围为(x10,x20),与非线性函数相连的前一个函数的输出数据的截断范围为[t1,t2],t1《x10,t2《x20的情况下,可以将[t1,t2],[t1,x20],[x10,t2]分别作为一组待确定截断范围。再次采用上述402-404中的方式从上述三组截断范围中确定出最优的截断范围作为非线性函数的截断范围。[0245]可以理解,在一些实施例中,也可以将多个量化输出结果和非量化输出结果只基于一个维度对比,获取该维度下最优的量化输出结果,并将该最优的量化输出结果对应的一组截断范围作为非线性函数的截断范围。[0246]然后参照上述步骤405,以最优截断范围内的数据和该最优的截断范围内的数据对应的量化数据构建量化映射表。[0247]可以理解,本技术实施例中,根据与非线性函数相连接的前一个节点或函数的输出数据进行截断范围的调整,可以进一步提高量化精度。[0248]本技术实施例提供一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是所述电子设备的所述一个或多个处理器之一,用于执行上述运行方法或上述量化方法。[0249]本技术实施例提供一种可读介质,所述可读介质上存储有指令,该指令在电子设备上执行时使机器执行上述的运行方法或量化方法。[0250]本技术实施例提供一种计算机程序产品,包括指令,所述指令用于实现上述运行方法或上述量化方法。[0251]本技术公开的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本技术的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统[包括易失性和非易失性存储器和/或存储元件]、至少一个输入设备以及至少一个输出设备。[0252]可将程序代码应用于输入指令,以执行本技术描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本技术的目的,处理系统包括具有诸如例如数字信号处理器(dsp)、微控制器、专用集成电路(asic)或微处理器之类的处理器的任何系统。[0253]程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本技术中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。[0254]在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(cd-roms)、磁光盘、只读存储器(rom)、随机存取存储器(ram)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。[0255]在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。[0256]需要说明的是,本技术各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本技术所提出的技术问题的关键。此外,为了突出本技术的创新部分,本技术上述各设备实施例并没有将与解决本技术所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。[0257]需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0258]虽然通过参照本技术的某些优选实施例,已经对本技术进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本技术的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1