1.本技术涉及人工智能(artificial intelligence,ai)技术领域,尤其涉及一种模型量化方法、装置及存储介质。
背景技术:2.ai可以应用在自动驾驶、医疗、安防、天气预测和物流等领域,使得各领域的电子设备能以人类智能相似的方式做出反应。ai的具体技术实现中,通常需要基于一定样本,训练能够实现一定功能的模型,进而电子设备可以基于该训练好的模型实现例如语音识别或图像识别等功能。
3.在模型训练的过程中,样本数据可以以浮点数(float)的形式输入待训练的模型,该待训练的模型可以基于浮点数进行训练,利用浮点数训练得到的模型精度较高,但是浮点数计算需要占用较大的计算资源,使得利用浮点数计算的模型难以部署在计算能力较弱的电子设备中。
4.一些实现中,将模型训练中的浮点数量化为整形数(int),整形数的计算相较于浮点数难度减小,整形数的比特数越小对计算资源的占用越少,但是整形数的比特数越小训练出的模型的精度越低。精度较低的模型难以适应对精度有较高要求的场景,难以实现计算资源占用与精度之间的平衡。
技术实现要素:5.本技术实施例提供一种模型量化方法、装置及存储介质,涉及a1领域,有助于得到资源占用与精度平衡的量化模型。
6.第一方面,本技术实施例提供一种模型量化方法,该方法包括:获取种群;种群包括n个个体,任一个个体为修改源模型各层中的量化比特数和量化策略得到的量化模型;n为大于1的整数;基于种群,循环执行迭代步骤,直到到达迭代次数得到目标量化模型;迭代步骤包括:分别训练种群的n个个体;在训练后的n个个体中筛选m个满足预设条件的个体;将m个个体进行交叉操作和/或变异操作,得到下一代种群,下一代种群包括n个经过交叉操作和/或变异操作后的个体。
7.本技术实施例中,在训练后的n个个体中选择m个优秀个体,m小于n,结合遗传算法的思想,将m个优秀个体进行交叉操作和/或变异操作,得到下一代种群,下一代种群中可以包括n个经过交叉操作和/或变异操作后的新个体,继续对下一代种群中的新个体进行类似于对初始种群的训练、选择、交叉操作和/或变异操作,再次得到下下一代种群,经过如此迭代,达到一定次数后,可以基于优胜劣汰的原理,得到精度较高和计算量较小的量化后的模型。
8.在一种可能的实现方式中,分别训练种群的n个个体,包括:在训练n个个体中的任一个个体时,调整任一个个体中各层的权重,直到损失函数收敛或达到训练次数阈值;其中,损失函数为设置在任一个个体与源模型间的损失函数。这样,可以基于源模型与量化模
型的差异训练量化模型,有助于得到输出效果好的量化模型。
9.在一种可能的实现方式中,还包括:在分别训练种群的n个个体时,若存在训练次数达到预设训练次数且损失函数大于预设值的l个目标个体时,丢弃l个目标个体,l为自然数。这样,若目标个体的训练次数达到预设训练次数且损失函数大于预设值,可以说明该目标个体很大概率不会达到收敛,若持续训练该目标个体,会对计算量造成浪费,且无法得到符合要求的训练后的个体,因此,丢弃目标个体,可以实现该目标个体及早退出训练,减少对计算资源的浪费。
10.在一种可能的实现方式中,损失函数包括:n个个体的输出与源模型的输出对应的损失函数,和/或,n个个体的中间结果与源模型的中间结果对应的损失函数;n个个体的中间结果包括n个个体各层的输出结果,源模型的中间结果包括源模型各层的输出结果。这样,损失函数还可以包括n个个体的中间结果与源模型的中间结果对应的损失函数,在对个体训练时,可以根据中间结果实现较为准确的模型权重调节,加速量化模型的收敛。
11.在一种可能的实现方式中,还包括:在l大于个数阈值的情况下,向种群中补充l个新个体,新个体为修改源模型各层中的量化比特数和量化策略得到的模型,且l个新个体不同于l个目标个体。这样,可以使得种群中有足够多能用于训练和筛选的个体,有利于得到优质的下一代种群。
12.在一种可能的实现方式中,在训练后的n个个体中筛选m个满足预设条件的个体,包括:在训练后的n个个体中选择损失函数最小的m个个体。这样,可以在训练后的n个个体中得到满足量化需求的精度最好的m个量化模型。
13.在一种可能的实现方式中,基于种群,循环执行迭代步骤,直到到达迭代次数得到目标量化模型,包括:基于种群,循环执行迭代步骤,直到到达迭代次数,在到达迭代次数时得到的种群中,选择损失函数最小的个体得到目标量化模型。这样,可以得到满足量化需求的精度最好的量化模型。
14.在一种可能的实现方式中,源模型包括分类模型、检测模型、分割模型、去雨模型、去雾模型、降噪模型、去马赛克模型或超分模型。这样,经过本技术实施例的方法量化后的模型,可以支持终端在不同场景中的各种功能实现。
15.在一种可能的实现方式中,获取种群包括:显示用户界面,用户界面包括用于触发量化的控件以及待量化的模型列表;在待量化的模型列表中接收到对源模型的触发,以及接收到对控件的触发时,获取种群。这样,用户可以结合需求,便捷的选择希望量化的源模型。
16.在一种可能的实现方式中,将m个个体进行交叉操作和/或变异操作,得到下一代种群,包括:将m个个体中,两两个体层中的量化比特数和量化策略的交叉,得到新的个体;和/或,将m个个体中任一个个体的层中的量化比特数和量化策略改变,得到新的个体。这样,可以基于遗传算法的思想,实现量化模型时下一代优秀种群的生成。
17.第二方面,本技术实施例提供一种模型量化装置,模型量化装置包括处理单元,处理单元用于实现第一方面中与处理相关的任意方法。模型量化装置还可以包括显示单元,用于显示第一方面中的用户界面。模型量化装置还可以包括通信单元,用于向目标设备发送训练后的目标量化模型。
18.第三方面,本技术实施例提供一种模型量化装置,括处理器和存储器,存储器用于
存储代码指令,处理器用于运行代码指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的方法。
19.第四方面,本技术实施例提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的模型量化方法。
20.第五方面,本技术实施例提供一种包括计算机程序的计算机程序产品,当计算机程序在计算机上运行时,使得计算机执行第一方面或第一方面的任意一种可能的实现方式中描述的模型量化方法。
21.第六方面,本技术提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以执行第一方面或第一方面的任意一种可能的实现方式中描述的模型量化方法。其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。
22.在一种可能的实现中,本技术中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。
23.应当理解的是,本技术的第二方面至第六方面与本技术的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
24.图1为本技术实施例所适用场景示意图;
25.图2为本技术实施例所提供的电子设备的结构示意图;
26.图3为本技术实施例提供的一种模型量化方法的流程示意图;
27.图4为本技术实施例提供的源模型的其中一层的输入、权重以及输出的对应关系示意图;
28.图5为本技术实施例提供的一种个体训练示意图;
29.图6为本技术实施例提供的一种模型量化方法的流程示意图;
30.图7为本技术实施例提供的一种芯片的结构示意图。
具体实施方式
31.为了便于清楚描述本技术实施例的技术方案,以下,对本技术实施例中所涉及的部分术语和技术进行简单介绍:
32.1)浮点模型:模型中权重值和/或输入值为浮点数的模型。浮点模型对计算资源占用较大,输出精度较高。
33.2)定点模型:模型中权重值为整型数的模型,也可以称为量化模型。定点模型中会将浮点数的输入先量化为整型数,利用量化后的整型数进行计算,量化后的整形数可以包括1比特(bit)、2bit、4bit、8bit或16bit等。定点模型对计算资源占用较小,在压缩模型大小和加速推理时间方面显示出很大潜力,但输出精度较低。
34.3)模型量化:是指对模型进行加速的方法。例如,将浮点模型量化为定点模型,定点模型可以占用更少的资源,减少较多的运算量,提升模型运算速度。模型量化时,可以涉
及到模型各层网络结构的量化bit数设置,以及各层网络结构的量化策略设置。
35.其中,量化bit数可以包括1bit、2bit、4bit、8bit或16bit等。
36.量化策略用于指示得到量化统计值的方法。例如,量化策略可以包括下述的一种或多种:
37.last value:取最后一次训练量化参数。示例性的,在模型量化过程中,若某一层的网络结构采用last value量化策略训练,在模型收敛时,可以取最后一次训练的量化统计值。
38.moving average:滑动平均统计量化参数。示例性的,在模型量化过程中,若某一层的网络结构采用moving average量化策略训练,在模型收敛时,可以取滑动平均的量化统计值。
39.lsq:可梯度更新的量化参数统计方法。示例性的,在模型量化过程中,若某一层的网络结构采用lsq量化策略训练,在模型收敛时,可以取梯度更新迭代后的量化统计值。
40.lsq+:增加offset偏置的可梯度更新的量化参数统计方法。示例性的,在模型量化过程中,若某一层的网络结构采用lsq+量化策略训练,在模型收敛时,可以取增加offset偏置的梯度更新迭代后的量化统计值。
41.overminmax:全局统计minmax值量化方法。示例性的,在模型量化过程中,若某一层的网络结构采用overminmax量化策略训练,在模型收敛时,可以取全局各层min max极值进行量化参数值统计。
42.上述任一种量化策略,均可以满足下述公式:
43.r=s(q-z)
44.q=round(z+r/s)
45.s=(r
max-r
min
)/(q
max-q
min
)
46.z=round(q
max-r
max
/s)
47.其中,r为浮点数,量化策略用于统计r
max
和r
min
;s为缩放系数;z为偏置量;q为整型数,量化bit数确定时q
max
和q
min
为确定值。
48.需要说明的是,上述各量化策略没有优劣之分,模型中各层网络结构可能适用不同的量化策略。
49.4)遗传算法:遗传算法是一种搜索元启发式算法,其灵感来自自然进化理论。该算法反映了自然选择的过程,即选择最适合的个体进行繁殖以产生下一代的后代。
50.遗传算法周期可以有下述6个主要阶段。
51.生成初始种群:一组“个体”被称为群体,其中每个个体的特征是一组以二进制表示的基因。
52.评估:可以采用适应度函数为每个个体提供适应度分数,以量化和比较个体的表现。
53.选择:基于评估阶段生成的适应度分数挑选最适合的个体以产生下一代种群(即下一个评估和繁殖周期的新种群)的过程。
54.交叉:混合选择的一对个体的基因以产生一对新个体的过程称为交叉或遗传操作。交叉可以用不同的方法进行,例如:单点交叉、两点交叉、顺序交叉、部分映射交叉、循环交叉等。
55.突变:在某些新个体中,他们的一些基因可能会以低随机概率发生突变。
56.终止:当种群收敛时,算法终止。这里的收敛表示个体的结构不再有显著差异,终止也可能在一定数量的循环后发生。
57.5)其他术语
58.在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
59.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
60.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a
‑‑
c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
61.在自动驾驶、医疗、安防、天气预测或物流等领域,均可以存在已经训练好的用于实现各领域对应功能的源模型。例如,源模型可以包括用于实现各领域中图像处理相关功能的分类模型、检测模型、分割模型、去雨模型、去雾模型、降噪模型、去马赛克模型或超分模型等。
62.源模型可以是基于服务器等具有较强计算能力的设备训练得到的浮点模型。源模型训练中可以包括数据加载、模型选择和算法选择。数据加载包括:将数据分为训练集和测试集,确定测试集的数据怎么加载,训练集的数据标签怎么定义,各数据处理中用什么数据增强方法,等。模型选择包括:选择哪种类型的模型网络结构,模型中具体的层数等。算法选择包括:选择什么样的损失函数loss,用什么优化算法,等。
63.示例性的,以源模型为降噪模型为例,降噪模型的训练可以包括:选择浮点数的样本数据,样本数据包括标注有标签的训练集,以及用于测试的测试集,将测试集和样本集输入预先设置在服务器的待训练模型中,待训练模型基于内部设置的算法,调整待训练模型各层的权重值(weight)后进行降噪输出,在待训练模型输出的数据与样本数据的差异满足loss时,loss收敛,得到降噪模型。
64.这些浮点模型运行时需要占用较大的计算资源,因此部署浮点模型的设备需要有较高的性能。而随着终端技术的发展,人们越来越倾向于使用终端设备实现各种需求,终端设备需要实现的功能越来越多,而终端设备的硬件或软件性能可能较低,源模型难以部署在这些性能相对较低的终端设备上,制约了终端设备各功能的实现。
65.在一些实现中,可以将浮点模型量化为定点模型,定点模型在运行时计算量较少,对内存的占用较小,功耗也较小,因此对终端设备的性能要求较低。
66.在将浮点模型量化为定点模型时,一种可能的实现中,可以将浮点模型中的输入
和权重统一量化为固定的整型比特,例如统一量化为4bit或8bit等,该量化方式简单,易于实现,但是统一量化后的定点模型可能存在精度过低,导致终端设备无法较好实现功能的现象。
67.而模型中可能在一些层设置较高位的比特,另一些层设置较低位的比特,既可以实现降低计算量的同时,满足一定的精度要求。因此另一种可能的实现中,可以通过技术人员调整浮点模型中各层中的权重或输入数据的量化整型比特,基于技术人员的经验等实现量化后的模型中各层为不同的量化整型比特,但是该实现中依赖于技术人员的经验,难以达到稳定的效果,且手工调参费时费力。
68.有鉴于此,本技术实施例提供模型量化方法,该方法可以在模型量化时结合遗传算法的理论,实现自动为浮点模型的各层寻找较佳或最佳量化bit数以及较佳或最佳量化策略,使得量化后的模型可以实现降低计算量的同时,满足一定的精度要求,且不需要人工参与,效率和稳定性较高。
69.图1示出了本技术实施例的模型量化方式适用的场景示意图。如图1所示,电子设备100可以为计算能力较弱的设备,量化设备200可以为计算能力较强的电子设备。
70.在量化设备200中,可以提供量化平台,用户可以在量化平台中选择待量化的源模型,之后量化设备200可以基于本技术实施例的模型量化方法实现对用户选择的源模型的自动量化。
71.示例性的,自动量化可以包括:修改源模型各层中的量化比特数和量化策略得到的n个模型,n个模型也可以称为n个个体,n个个体可以组成初始种群,分别对初始种群中的n个模型进行训练,并在训练后的n个个体中选择m个优秀个体,m小于n,结合遗传算法的思想,将m个优秀个体进行交叉操作和/或变异操作,得到下一代种群,下一代种群中可以包括n个经过交叉操作和/或变异操作后的新个体,继续对下一代种群中的新个体进行类似于对初始种群的训练、选择、交叉操作和/或变异操作,再次得到下下一代种群,经过如此迭代,达到一定次数后,可以基于优胜劣汰的原理,得到精度较高和计算量较小的量化后的模型。
72.量化后的模型可以部署在电子设备100中,电子设备100可以基于量化后的模型实现如图像处理中的相关功能。
73.示例性的,图2示出了电子设备100的结构示意图。
74.电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
75.可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本技术另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
76.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processing unit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural-network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
77.控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
78.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
79.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,i2c)接口,集成电路内置音频(inter-integrated circuit sound,i2s)接口,脉冲编码调制(pulse code modulation,pcm)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,uart)接口,移动产业处理器接口(mobile industry processor interface,mipi),通用输入输出(general-purpose input/output,gpio)接口,用户标识模块(subscriber identity module,sim)接口,和/或通用串行总线(universal serial bus,usb)接口等。
80.可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本技术另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
81.示例性的,处理器110可以基于相应接口得到待处理的图像,并基于本技术实施例中得到的量化后的模型实现对图像的处理,因为量化后的模型精度较高和计算量较小,因此图像处理不会对终端设备的功耗造成较大影响,也使得终端设备能较好实现较多功能。
82.下面通过具体的实施例对本技术实施例的模型量化方法进行详细说明。下面的实施例可以相互结合或独立实施,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
83.图3为本技术实施例的一种模型量化方法的流程示意图。如图3所示,方法可以包括:
84.s301、获取种群;种群包括n个个体。
85.本技术实施例中,任一个个体可以为修改源模型各层中的量化比特数和量化策略得到的量化模型。
86.源模型可以是浮点模型,源模型中可以包括多个卷积层(conv),各卷积层对应有输入和权重(weight),各卷积层的输入和权重可以有各自的量化策略和初始量化比特数。
87.示例性的,图4示出了源模型的其中一层的输入、权重以及输出的对应关系图。如图4所示,可以为该层的输入选择量化策略和量化比特数,可以为该层的权重选择量化策略和量化比特数,则该层在后续计算时,可以基于输入的量化策略和量化比特数对输入进行处理,基于权重的量化策略和量化比特数对权重进行处理,得到该层的输出。
88.本技术实施例中,可以任意修改源模型中各卷积层的输入的量化策略和/或量化比特数,和/或,任意修改源模型中各卷积层的权重的量化策略和/或量化比特数,经过对源模型各层的量化策略和量化比特数,可以得到量化后的n个个体,n可以为大于1的整数。
89.需要说明的是,本技术实施例的种群,可以是修改源模型得到的初始种群,也可以是经过选择后的种群,本技术实施例对种群不作具体限定。
90.基于种群,本技术实施例可以循环执行迭代步骤,直到到达迭代次数,得到目标量化模型。
91.迭代次数可以是预设的任意值,该任意值可以是基于经验或其他方式得到,本技术实施例对迭代次数不作限定。
92.可能的实现方式中,迭代次数与量化源模型时的优化目标有关,例如,量化源模型时的优化目标可以包括下述的一种或多种:将源模型的计算量优化到原计算量的某比例、将源模型的内存占用优化到原内存占用的某比例、量化后的模型与源模型输出的精度之间的差异不超过某比例、等。
93.例如,将源模型的计算量优化到原计算量的比例越低,迭代次数越多;或者,将源模型的内存占用优化到原内存占用的比例越低,迭代次数越多;或者,量化后的模型与源模型输出的精度之间的差异不超过的比例越低,迭代次数越多;等。
94.在迭代次数到达时,可以在到达迭代次数时得到的种群中,选择损失函数最小的个体得到目标量化模型。当然,也可以在到达迭代次数时得到的种群中,选择损失函数较小的多个个体作为目标量化模型,本技术实施例不作具体限定。
95.迭代步骤可以包括s302-s304。
96.s302、分别训练种群的n个个体。
97.本技术实施例中,任一个个体可以为任意修改源模型中的量化比特数和量化策略得到的量化模型,n个个体的输出可能不一致,对n个个体分别训练,使得任意个体能够实现与源模型类似的输出,以实现对源模型量化时,量化后的模型能实现与源模型相似或相同的功能。
98.在训练n个个体中的任一个个体时,可以调整任一个个体中各层的权重,直到损失函数收敛或达到训练次数阈值;其中,损失函数为设置在任一个个体与源模型间的损失函数,或者可以理解为,将源模型与量化模型之间的差异作为训练个体时的依据。训练次数阈值的设置可以与期待的训练时长、期待的计算量正相关,本技术实施例对训练次数阈值不作限定。
99.示例性的,图5示出了一种训练n个个体的过程示意图。
100.如图5所示,以浮点模型包括3个层,浮点模型的输出为图像(jpg图)为例,浮点模型的输入raw_fe a经初步处理得到m,m经过三个层的依次下采样后,在从各层依次上采样,基于第一层的上采样结果m_up_1对m处理后可以输出jpg图。其中,各层的上采样结果可以作为各层的输出,例如第二层的上采样结果m_up_2位第二层的输出,第三层的上采样结果m_up_3位第三层的输出。
101.将浮点模型的各层设置量化比特数和量化策略后,可以得到量化模型,量化模型的架构与浮点模型保持一致,不再赘述。
102.该量化模型即上述的个体,在对个体进行训练时,损失函数可以包括loss约束1,
loss约束1可以为在个体的输出与源模型的输出之间设置的约束,在loss约束1收敛时,可以认为个体训练完成。
103.为了加速量化模型的收敛,损失函数还可以包括n个个体的中间结果与源模型的中间结果对应的损失函数。例如,可以在源模型和量化模型的中间结果中增加loss约束。示例性的,可以为个体的每一层的输出与源模型的每一层的输出之间设置loss约束,例如,在个体的第三层的输出与源模型的第三层的输出之间设置loss约束3,在个体的第二层的输出与源模型的第二层的输出之间设置loss约束2,在loss约束1收敛、loss约束2收敛和/或loss约束3收敛时,可以认为个体训练完成。其中,个体的第二、三层的输出与源模型的第二、三层的输出均可以理解为中间结果。
104.s303、在训练后的n个个体中筛选m个满足预设条件的个体。
105.本技术实施例中,预设条件可以基于不同模型的评价标准确定,本技术实施例不作限定,例如,m个满足预设条件的个体可以为训练后的n个个体中loss损失较小的m个个体,等。
106.可能的实现中,可以设置评价机制,将训练后的n个个体输入评价机制,由评价机制输出m个满足预设条件的个体。例如,评价机制可以是预先训练的对个体评分的模型,本技术实施例评价机制不作具体限定。
107.s304、将m个个体进行交叉操作和/或变异操作,得到下一代种群,下一代种群包括n个经过交叉操作和/或变异操作后的个体。
108.交叉操作可以指将m个个体中,两两个体层中的量化比特数和量化策略的交叉,得到新的个体,变异操作可以指将m个个体中任一个个体的层中的量化比特数和量化策略改变,得到新的个体。
109.综上,本技术实施例中,可以修改源模型各层中的量化比特数和量化策略得到包括n个体的种群,分别对n个个体进行训练,并在训练后的n个个体中选择m个优秀个体,m小于n,结合遗传算法的思想,将m个优秀个体进行交叉操作和/或变异操作,得到下一代种群,下一代种群中可以包括n个经过交叉操作和/或变异操作后的新个体,继续对下一代种群中的新个体进行类似于对初始种群的训练、选择、交叉操作和/或变异操作,再次得到下下一代种群,经过如此迭代,达到一定次数后,可以基于优胜劣汰的原理,得到精度较高和计算量较小的量化后的模型。
110.可选的,在图3对应的实施例的基础上,本技术实施例在分别训练种群的n个个体时,若存在训练次数达到预设训练次数且损失函数大于预设值的l个目标个体时,可以丢弃l个目标个体,l为自然数。
111.本技术实施例中,预设训练次数可以基于经验设置,例如,预设训练次数可以为训练次数阈值的一半等,本技术实施例不作具体限定。若目标个体的训练次数达到预设训练次数且损失函数大于预设值,可以说明该目标个体很大概率不会达到收敛,若持续训练该目标个体,会对计算量造成浪费,且无法得到符合要求的训练后的个体,因此,丢弃目标个体,可以实现该目标个体及早退出训练,减少对计算资源的浪费。
112.可选的,在l大于个数阈值的情况下,向种群中补充l个新个体,新个体为修改源模型各层中的量化比特数和量化策略得到的模型,且l个新个体不同于l个目标个体。这样,可以使得种群中有足够多能用于训练和筛选的个体,有利于得到优质的下一代种群。
113.可选的,本技术实施例的模型量化方法还可以结合硬件在环实时监测进一步完善,例如,可以将本技术实施例的目标量化模型加载在电子设备中,电子设备中运行该目标量化模型,将样本数据输入到目标量化模型得到相应的输出,将电子设备中目标量化模型的输出与样本数据比较,如果差异较大,则进一步采用本技术实施例的模型量化方法进一步对目标量化模型进行训练,以得到能在电子设备中实现较好输出效果的量化模型。
114.示例性的,图6示出了一种具体的模型量化方法的流程示意图。
115.如图6所示,在模型量化时,可以初始化种群,种群中包括n个个体。分别对种群中的n个个体进行训练,训练中如果存在达到预设训练次数且损失函数loss大于预设值的个体,则丢弃该个体,如果丢弃的个体的数量l大于一定值,则向种群中补充l个新个体,并对新个体进行训练。进一步地,评价机制可以对训练后的个体进行评价,如果没有达到迭代次数,则评价机制从训练后的个体中筛选m个优秀个体,m小于n,对m个优秀个体进行交叉操作和/或变异操作,可以得到下一代种群,下一代种群中可以包括n个个体,进一步对下一代种群进行上述的训练、筛选、交叉和/或变异,直到达到迭代次数,在到达迭代次数的种群中筛选最优个体输出。
116.该方法可以在模型量化时结合遗传算法的理论,实现自动为浮点模型的各层寻找较佳或最佳量化bit数以及较佳或最佳量化策略,使得量化后的模型可以实现降低计算量的同时,满足一定的精度要求,且不需要人工参与,效率和稳定性较高。
117.可以理解的是,本技术实施例提供的界面仅作为一种示例,并不能构成对本技术实施例的进一步限定。
118.需要说明的是,本技术实施例的电子设备可以包括具有无线连接功能的手持式设备、车载设备等。例如,一些电子设备为:手机(mobile phone)、平板电脑、掌上电脑、笔记本电脑、移动互联网设备(mobile internet device,mid)、可穿戴设备,虚拟现实(virtual reality,vr)设备、增强现实(augmented reality,ar)设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、蜂窝电话、无绳电话、会话启动协议(session initiation protocol,sip)电话、无线本地环路(wireless local loop,wll)站、个人数字助理(personal digital assistant,pda)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,5g网络中的终端设备或者未来演进的公用陆地移动通信网络(public land mobile network,plmn)中的终端设备等,本技术实施例对此并不限定。
119.作为示例而非限定,在本技术实施例中,该电子设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测
的智能手环、智能首饰等。
120.此外,在本技术实施例中,电子设备还可以是物联网(internet of things,iot)系统中的终端设备,iot是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。
121.本技术实施例中的电子设备也可以称为:终端设备、用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置等。
122.在本技术实施例中,电子设备或各个网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。该硬件层包括中央处理器(central processing unit,cpu)、内存管理单元(memory management unit,mmu)和内存(也称为主存)等硬件。该操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,linux操作系统、unix操作系统、android操作系统、ios操作系统或windows操作系统等。该应用层包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
123.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的方法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
124.本技术实施例可以根据上述方法示例对实现模型量化方法的装置进行功能模块的划分,例如可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
125.如图7示为本技术实施例提供的一种芯片的结构示意图。芯片70包括一个或两个以上(包括两个)处理器701、通信线路702、通信接口703和存储器704。
126.在一些实施方式中,存储器704存储了如下的元素:可执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
127.上述本技术实施例描述的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1201可以是通用处理器(例如,微处理器或常规处理器)、数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门、晶体管逻辑器件或分立硬件组件,处理器701可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。
128.结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。其中,软件模块可以位于随机存
储器、只读存储器、可编程只读存储器或带电可擦写可编程存储器(electrically erasable programmable read only memory,eeprom)等本领域成熟的存储介质中。该存储介质位于存储器704,处理器701读取存储器704中的信息,结合其硬件完成上述方法的步骤。
129.处理器701、存储器704以及通信接口703之间可以通过通信线路702进行通信。
130.在上述实施例中,存储器存储的供处理器执行的指令可以以计算机程序产品的形式实现。其中,计算机程序产品可以是事先写入在存储器中,也可以是以软件形式下载并安装在存储器中。
131.本技术实施例还提供一种计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。例如,可用介质可以包括磁性介质(例如,软盘、硬盘或磁带)、光介质(例如,数字通用光盘(digital versatile disc,dvd))、或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
132.本技术实施例还提供一种计算机可读存储介质。上述实施例中描述的方法可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。计算机可读介质可以包括计算机存储介质和通信介质,还可以包括任何可以将计算机程序从一个地方传送到另一个地方的介质。存储介质可以是可由计算机访问的任何目标介质。
133.作为一种可能的设计,计算机可读介质可以包括紧凑型光盘只读储存器(compact disc read-only memory,cd-rom)、ram、rom、eeprom或其它光盘存储器;计算机可读介质可以包括磁盘存储器或其它磁盘存储设备。而且,任何连接线也可以被适当地称为计算机可读介质。例如,如果使用同轴电缆,光纤电缆,双绞线,dsl或无线技术(如红外,无线电和微波)从网站,服务器或其它远程源传输软件,则同轴电缆,光纤电缆,双绞线,dsl或诸如红外,无线电和微波之类的无线技术包括在介质的定义中。如本文所使用的磁盘和光盘包括光盘(cd),激光盘,光盘,数字通用光盘(digital versatile disc,dvd),软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光光学地再现数据。
134.上述的组合也应包括在计算机可读介质的范围内。以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。