一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

模型量化方法、装置及存储介质与流程

2022-03-19 20:29:45 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体而言,本技术涉及一种模型量化方法、装置及计算机可读存储介质。


背景技术:

2.在模型量化过程中,一般不选用最大值映射数据,而是通过计算得出合适的映射最大值。要获得合适的映射最大值,可以通过计算原始数据与映射数据的分布相似性来判断映射最大值的取值是否合理,其中,数据的分布相似度就是kullback-leibler散度值(简称kl散度值),kl散度值越小说明两个分布越相似。
3.现有技术中,在计算kl时通常会遍历从128到2048个阈值,这样计算耗时较多,严重影响模型量化速度。


技术实现要素:

4.本技术实施例提供了一种模型量化方法、装置及计算机可读存储介质,旨在解决现有技术中的至少一个技术问题。
5.根据本技术实施例的一个方面,提供了一种模型量化方法,该方法包括:
6.从预设的阈值范围中确定搜索中心;
7.根据所述搜索中心确定搜索范围;
8.根据所述搜索范围内的各个阈值对应的第二kl散度值,从所述搜索范围内的阈值中确定出目标阈值,以作为模型量化后的映射范围的最大值;
9.根据所述目标阈值进行模型量化。
10.在一个可能的实现方式中,所述从预设的阈值范围中确定搜索中心,包括:
11.从预设的所述阈值范围内获取多个锚点;
12.根据各个所述锚点对应的第一kl散度值,从多个所述锚点中确定搜索中心。
13.在另一个可能的实现方式中,所述从预设的所述阈值范围内获取多个锚点,包括:
14.按照预设步长,从预设的所述阈值范围内获取多个锚点。
15.在另一个可能的实现方式中,所述根据多个所述锚点的kl散度值,从多个所述锚点中确定搜索中心,包括:
16.计算各个锚点对应的第一kl散度值;
17.将多个所述第一kl散度值中的最小值对应的锚点确定为所述搜索中心。
18.在又一个可能的实现方式中,根据所述搜索中心确定搜索范围,包括:
19.将与所述搜索中心相邻的锚点之间的阈值,确定为所述搜索范围。
20.在又一个可能的实现方式中,所述根据所述搜索范围内的各个阈值对应的第二kl散度值,从所述搜索范围内的阈值中确定出目标阈值,以作为模型量化后的映射范围的最大值,包括:
21.针对所述搜索范围内的阈值,逐个计算对应的第二kl散度值;
22.将多个第二kl散度值中的最小值对应的阈值,确定为所述目标阈值,以作为模型量化后的映射范围的最大值。
23.根据本技术实施例的另一个方面,提供了一种模型量化装置,该装置包括:
24.确定模块,用于从预设的阈值范围中确定搜索中心;还用于根据所述搜索中心确定搜索范围;还用于根据所述搜索范围内的各个阈值对应的第二kl散度值,从所述搜索范围内的阈值中确定出目标阈值,以作为模型量化后的映射范围的最大值;
25.量化模块,用于根据所述目标阈值进行模型量化。
26.在一个可能的实现方式中,所述确定模块在从预设的阈值范围中确定搜索中心时,具体用于:
27.从预设的所述阈值范围内获取多个锚点;
28.根据各个所述锚点对应的第一kl散度值,从多个所述锚点中确定搜索中心。
29.所述确定模块在从预设的所述阈值范围内获取多个锚点时,具体用于:按照预设步长,从预设的所述阈值范围内获取多个锚点。
30.在另一个可能的实现方式中,所述确定模块在根据各个所述锚点对应的第一kl散度值,从多个所述锚点中确定搜索中心时,具体用于:
31.计算各个锚点对应的第一kl散度值;
32.将多个所述第一kl散度值中的最小值对应的锚点确定为所述搜索中心。
33.在又一个可能的实现方式中,所述确定模块在根据所述搜索中心确定搜索范围时,具体用于:将与所述搜索中心相邻的锚点之间的阈值,确定为所述搜索范围。
34.在又一个可能的实现方式中,所述确定模块在根据所述搜索范围内的各个阈值对应的第二kl散度值,从所述搜索范围内的阈值中确定出目标阈值,以作为模型量化后的映射范围的最大值时,具体用于:
35.针对所述搜索范围内的阈值,逐个计算对应的第二kl散度值;
36.将多个第二kl散度值中的最小值对应的阈值,确定为所述目标阈值,以作为模型量化后的映射范围的最大值。
37.根据本技术实施例的另一个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现第一方面所示的模型量化方法的步骤。
38.根据本技术实施例的再一个方面,提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现第一方面所示的模型量化方法的步骤。
39.根据本技术实施例的又一个方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所示的模型量化方法的步骤。
40.本技术实施例提供的技术方案带来的有益效果是:
41.通过先对搜索范围通过锚定法进行粗搜索,确定最优锚点,再对最优锚点的邻域范围进行精确搜索,得到领域最优点,以领域最优点作为全局最优点使用,可以大大降低计算耗时,提升模型量化速度。
附图说明
42.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所
需要使用的附图作简单地介绍。
43.图1为本技术实施例提供的一种模型量化方法中kl散度值的搜索空间的示意图;
44.图2为本技术实施例提供的一种模型量化方法中的锚点的示意图;
45.图3为本技术实施例提供的一种模型量化方法中搜索范围的示意图;
46.图4为本技术实施例提供的一种模型量化方法的流程示意图;
47.图5为本技术实施例提供的一种模型量化方法中确定搜索中心的流程示意图;
48.图6为本技术另一实施例提供的一种模型量化方法中确定搜索中心的流程示意图;
49.图7为本技术实施例提供的一种模型量化方法中确定目标阈值的流程示意图;
50.图8为本技术实施例提供的一种模型量化装置的结构示意图;
51.图9为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
52.下面结合本技术中的附图描述本技术的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本技术实施例的技术方案的示例性描述,对本技术实施例的技术方案不构成限制。
53.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
54.为了保证较高的精度,大部分的科学运算都是采用浮点型进行计算,常见的是32位浮点型和64位浮点型,即float32和double64。
55.对于深度学习模型来说,乘加计算量是非常大的,往往需要gpu等专用的计算平台才能实现实时运算,这对于端上产品来说是不可接受的,而模型量化是一个有效降低计算量的方法。
56.量化,即将网络的权值,激活值等从高精度转化成低精度的操作过程,例如:将32位浮点数转化成8位整型数int8,同时期望转换后的模型准确率与转化前相近。模型量化可以带来更小的模型尺寸、更低的功耗、更快的计算速度的优势。
57.在模型量化过程中,一般不选用最大值映射数据,而是通过计算得出合适的映射最大值。要获得合适的映射最大值,可以通过计算原始数据与映射数据的分布相似性来判断映射最大值的取值是否合理,其中,数据的分布相似度就是kl散度值,kl散度值越小说明两个分布越相似。
58.数据转换需要找到一个合理的阈值表示量化后的最大取值范围,为了找到这个最优阈值一般使用kl散度计算得到。kl散度,用于衡量两种概率分布之间的相似程度(也即:相对熵)来对量化前后的激活值分布进行评价,找出使得量化后int8分布相对于原来的fp32分布信息损失最小的那个阈值。
59.如图1所示,标号128到2048对应取值就是要搜索的空间,搜索方法是计算从128到2048的所有值分别对应的kl结果,获取所有kl中最小值对应的值就是要求的最优映射最大值。此流程中需要计算1921次kl散度值,会花费较多时间。显然,现有技术中采用遍历从128到2048个阈值的方法寻找最小kl散度值,这样计算耗时较多,严重影响模型量化速度。
60.为了解决现有技术中使用遍历法寻找最小kl散度值速度太慢的技术问题,本技术
实施例提供了一种模型量化方法,采用锚钉法进行最优值搜索,先用较大的步长寻找初步最优点即最优锚点,再遍历最优锚点前后相邻锚钉之间的所有阈值,以寻找全局最优阈值点。此方法以较小精度损失为代价,快速得到搜寻范围内的次优点,相比现有方案可以达到10倍以上的提速,精度损失也能控制在1%以内。
61.下面通过对几个示例性实施方式的描述,对本技术实施例的技术方案以及本技术的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
62.图4为本技术实施例提供的一种模型量化方法,如图4所示,该方法包括:
63.s101、从预设的阈值范围中确定搜索中心。
64.s102、根据搜索中心确定搜索范围。
65.s103、根据搜索范围内的各个阈值对应的第二kl散度值,从该搜索范围内的阈值中确定出目标阈值,以作为模型量化后的映射范围的最大值。
66.s104、根据目标阈值进行模型量化。
67.在该实施例中,通过先对搜索范围通过锚定法进行粗搜索,确定最优锚点,再对最优锚点的邻域范围进行精确搜索,得到领域最优点,以领域最优点作为全局最优点使用,以作为模型量化后的映射范围的最大值,可以大大降低计算耗时,提升模型量化速度。
68.具体的,在该实施例中,预设的阈值范围可以为第一阈值与第二阈值之间的阈值范围,其中,第一阈值可以为128,第二阈值可以为2048。
69.图5为本技术实施例提供的一种模型量化方法中的确定搜索中心(步骤s101)的流程示意图。如图5所示,s101具体可以包括:
70.s1011、从预设的阈值范围内获取多个锚点。
71.s1012、根据各个锚点对应的第一kl散度值,从多个锚点中确定搜索中心。
72.在一些实施例中,s1011具体可以包括:按照预设步长,从预设(第一阈值与第二阈值之间)的阈值范围内获取多个锚点。
73.具体的,在该实施例中,如图2所示,锚点选择可以按照一定步长从序号128到2048进行抽取,比如:设置步长为20,那么获取的锚点就是128、148、168

,因此,可以得到96个锚点。
74.图6为本技术实施例提供的一种模型量化方法中的确定搜索中心(步骤s1012)的流程示意图。如图6所示,s1012具体可以包括:
75.s1012a、计算各个锚点对应的第一kl散度值。
76.s1012b、将多个第一kl散度值中的最小值对应的锚点确定为搜索中心。
77.具体的,在该实施例中,如图2所示,锚点选择可以按照一定步长从序号128到2048进行抽取,比如:设置步长为20,那么获取的锚点就是128、148、168

,因此,只需计算96个阈值对应的kl散度值即可得到各个锚点的kl散度值,此时可以从96个kl散度值中选择kl最小的锚点即最优锚点作为精细搜索的中心。
78.在一些实施例中,s102具体可以包括:将与搜索中心相邻的锚点之间的阈值,确定为搜索范围,优选的,将与搜索中心相邻的两个锚点之间的阈值,确定为搜索范围。
79.也就是说,在该实施例中,在精细搜索时,如图3所示,会选择步骤s103中选出的最
优锚点为中心,以前后锚点之间的待选阈值为领域范围,即精细搜索的搜索范围,例如:最优锚点为248,则228与268之间的阈值为搜索范围内的阈值。
80.图7为本技术实施例提供的一种模型量化方法中的确定目标阈值(步骤s103)的流程示意图。如图7所示,s103具体可以包括:
81.s1031、针对搜索范围内的阈值,逐个计算对应的第二kl散度值。
82.s1032、将多个第二kl散度值中的最小值对应的阈值,确定为目标阈值,以作为模型量化后的映射范围的最大值。
83.也就是说,在该实施例中,在精细搜索时,如图3所示,步骤s103中选出的最优锚点248为中心的领域范围内进行逐点计算kl散度值,在求得的39个kl散度值中选择最小kl对应的待选阈值作为最终映射最大值使用。
84.由于通过锚定法进行粗搜索时计算量是96个kl散度值,精细搜索计算量是39个kl散度值,因此,总共计算量是135个kl散度值,由此可知,计算量从1921下降到135,在速度上提升了至少10倍。
85.综上,本技术实施例提供的一种模型量化方法,采用锚钉法进行最优值搜索,先用较大的步长寻找初步最优点即最优锚点,再遍历最优锚点前后相邻锚钉之间的所有阈值,以寻找全局最优阈值点,以作为模型量化后的映射范围的最大值。此方法以较小精度损失为代价,快速得到搜寻范围内的次优点,相比现有方案可以达到10倍以上的提速,精度损失也能控制在1%以内。
86.需要说明的是,在本技术的上述各实施例中,kl散度值可以采用现有相关技术中的方法计算得到,为了描述的简洁,在此不再赘述。
87.图8为本技术实施例提供了一种模型量化装置,如图8所示,该装置80可以包括:确定模块801和量化模块802。其中,
88.确定模块801用于从预设的阈值范围中确定搜索中心;还用于根据搜索中心确定搜索范围;还用于根据搜索范围内的各个阈值对应的第二kl散度值,从该搜索范围内的阈值中确定出目标阈值,以作为模型量化后的映射范围的最大值。
89.量化模块802用于根据目标阈值进行模型量化。
90.进一步地,上述确定模块801在从预设的阈值范围中确定搜索中心时,具体用于:从预设的阈值范围内获取多个锚点;根据各个锚点对应的第一kl散度值,从多个锚点中确定搜索中心。
91.进一步地,上述确定模块801在从预设的阈值范围内获取多个锚点时,具体用于:按照预设步长,从预设的阈值范围内获取多个锚点。
92.进一步地,上述确定模块801在根据各个锚点对应的第一kl散度值,从多个锚点中确定搜索中心时,具体用于:
93.计算各个锚点对应的第一kl散度值;将多个第一kl散度值中的最小值对应的锚点确定为搜索中心。
94.进一步地,上述确定模块801在根据搜索中心确定搜索范围时,具体用于:将与搜索中心相邻的锚点之间的阈值,确定为搜索范围。
95.进一步地,上述确定模块801在根据搜索范围内的各个阈值对应的第二kl散度值,从该搜索范围内的阈值中确定出目标阈值,以作为模型量化后的映射范围的最大值时,具
体用于:
96.针对搜索范围内的阈值,逐个计算对应的第二kl散度值;将多个第二kl散度值中的最小值对应的阈值,确定为目标阈值,以作为模型量化后的映射范围的最大值。
97.本技术实施例的装置可执行本技术实施例提供的方法,其实现原理和能够达到的效果相类似,本技术各实施例的装置中的各模块所执行的动作是与本技术各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
98.本技术实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现本技术实施例提供的模型量化方法的步骤,与现有技术相比可实现:通过先对搜索范围通过锚定法进行粗搜索,确定最优锚点,再对最优锚点的邻域范围进行精确搜索,得到领域最优点,以领域最优点作为全局最优点使用,可以大大降低计算耗时,提升模型量化速度。
99.在一个可选实施例中提供了一种电子设备,如图9所示,图9所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。
100.处理器4001可以是cpu(central processing unit,中央处理器),通用处理器,dsp(digital signal processor,数据信号处理器),asic(application specific integrated circuit,专用集成电路),fpga(field programmable gate array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
101.总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是pci(peripheral component interconnect,外设部件互连标准)总线或eisa(extended industry standard architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
102.存储器4003可以是rom(read only memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,ram(random access memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom(electrically erasable programmable read only memory,电可擦可编程只读存储器)、cd-rom(compact disc read only memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
103.存储器4003用于存储执行本技术实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
104.本技术实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现
有技术相比可实现:本技术实施例提供的一种模型量化方法,采用锚钉法进行最优值搜索,先用较大的步长寻找初步最优点即最优锚点,再遍历最优锚点前后相邻锚钉之间的所有阈值,以寻找全局最优阈值点。此方法以较小精度损失为代价,快速得到搜寻范围内的次优点,相比现有方案可以达到10倍以上的提速,精度损失也能控制在1%以内。
105.需要说明的是,本技术实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
106.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
107.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
108.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机可执行指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机可执行指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
109.这些处理器可执行指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的处理器可读存储器中,使得存储在该处理器可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
110.这些处理器可执行指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
111.应该理解的是,虽然本技术实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本
申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本技术实施例对此不限制。
112.以上所述仅是本技术部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术的方案技术构思的前提下,采用基于本技术技术思想的其他类似实施手段,同样属于本技术实施例的保护范畴。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献