首页 / 动态混合量化训练方法及装置

动态混合量化训练方法及装置实质审查 发明

技术领域

[0001] 本发明涉及神经网络技术领域,尤其涉及一种动态混合量化训练方法及装置。

相关背景技术

[0002] 深度神经网络已经在图像分类、目标检测以及自然语言处理等领域取得巨大的突破。但由于深度神经网络具有网络深度深且网络参数量大的特点,导致一般的深度神经网络仅仅只能在显存大且计算力强的GPUs上完成任务,而在内存小、计算力弱的移动电话和小型嵌入式设备难以有出色发挥。而深度神经网络模型的量化是解决这一难题的方法之一。
[0003] 现有的深度神经网络量化采用的方式为:将网络中网络层、激活层量化为某一个格式,每一层级对应的量化格式是固定不变的,不能根据训练过程进行量化格式的优化分配,导致低位宽量化后的深度神经网络精度低,而高位宽量化后虽能缓解量化后的精度问题,但其深度神经网络运行所占用的硬件内存较大、速度较慢。

具体实施方式

[0032] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0033] 本发明提供了一种动态混合量化训练方法,涉及神经网络技术领域。本发明实施例中,神经网络模型中神经网络的量化,主要指的是将高位宽表示的权重或激活值用低位宽的量化格式来近似表示。比如,将神经网络的待量化层的权重、激活值的格式由float32量化为int16或int8。
[0034] 图1示出了本发明的一种动态混合量化训练方法的流程示意图,该方法包括:
[0035] S1:在神经网络模型的训练迭代前,获取神经网络模型中待量化层的量化后相似度,对量化后相似度按照从大到小排序,并将与排序靠前的第一预设数量的量化后相似度对应的待量化层的量化格式设为第一量化格式,将其它待量化层的量化格式设为第二量化格式;
[0036] S2:在神经网络模型的训练迭代中,每经过预设的迭代次数后获取神经网络模型中当前量化格式为第一量化格式的待量化层的参数离散度,对参数离散度按照从大到小排序,将与排序靠前的第二预设数量的参数离散度对应的待量化层的量化格式设为第二量化格式;
[0037] 其中,第一量化格式的数值位宽小于第二量化格式。
[0038] 本发明中数值位宽以第一量化格式为int8、第二量化格式为int16为例。可以同理拓展到其他量化格式的混合,如第一量化格式为int8,第二量化格式为int4。本发明的第一量化格式、第二量化格式并不局限于上述例举,只要满足第一量化格式的数值位宽小于第二量化格式即符合本发明对二者的要求。
[0039] 本发明适用于机器学习中的神经网络模型,即适用于符合神经网络模型定义的神经网络模型,其包括SSD网络、RCNN类网络等现有的神经网络模型,也包括非标准的符合神经网络模型定义的神经网络模型,可适用于各种应用场景的神经网络模型,如centerpoint lidar3D检测模型。
[0040] 本发明实施例提供的动态混合量化训练方法,用量化后相似度代表待量化层的量化格式由第二量化格式降为第一量化格式后的结果损失大小,将结果损失小的第一预设数量的待量化层设为第一量化格式参与训练,其他待量化层设为第二量化格式参与训练,能够有效进行量化初始化,防止一些相对重要的层被赋予了位宽小的第一量化格式,提高训练精度和神经网络模型的精度,降低神经网络模型的硬件内存占用,提高神经网络模型的处理速度。
[0041] 本发明实施例提供的动态混合量化训练方法,参数离散度能反映训练过程中待量化层的当前量化格式的适配程度,将适配程度低即参数离散度较大的第二预设数量的待量化层设为第二量化格式,能够把相对重要的层升为第二量化格式,能够有效提高训练精度和神经网络模型的精度,降低神经网络模型的硬件内存占用。
[0042] 示例性地,在神经网络模型的训练迭代前,各待量化层的原格式均相同,并且不同于第一量化格式和第二量化格式,若神经网络模型的待量化层的总数为T,预设训练迭代前第一量化格式的比重I_R,对应地,第一预设数量N_1为T*I_R向上或向下取整后的数值,将待量化层按量化后相似度从大到小排序,选取排序靠前的N_1个量化后相似度对应的待量化层将其量化格式设为第一量化格式。其他待量化层的量化格式设为第二量化格式。
[0043] 在一个可选实施例中,待量化层包括神经网络模型的网络层和\或激活层。
[0044] 其中,和/或,用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0045] 具体地,神经网络模型中包括网络层和激活层,本发明所进行量化的待量化层可以包括神经网络模型中的所有网络层和激活层,也可以只包括神经网络模型中的部分网络层,也可以只包括神经网络模型中的部分激活层。在本发明开始训练前预设选定需要进行量化的网络层和\或激活层,进行量化操作。
[0046] 本发明实施例提供的动态混合量化训练方法,本发明能够根据神经网络模型的结构和特点预选网络层和\或激活层进行量化操作,提高本发明的灵活程度,能够进一步对神经网络模型的不同层级的量化格式进行优化分配,提高训练后神经网络模型的精度,降低神经网络模型所占用的硬件内存,降低运行成本。
[0047] 进一步地,在一个可选实施例中,如图2所示,当待量化层为网络层时,获取神经网络模型中待量化层的量化后相似度的步骤包括:
[0048] 判断待量化层是否为神经网络模型的最后一层网络层,若是,获取待量化层的量化格式设为第二量化格式时的输出作为高位宽特征,并获取将待量化层的量化格式设为第一量化格式时的输出作为低位宽特征,根据高位宽特征与低位宽特征获取量化后相似度;否则,获取待量化层的量化格式为第二量化格式时的下一网络层的输出作为高位宽特征,并获取待量化层的量化格式设为第一量化格式时的下一层网络的输出作为低位宽特征,根据高位宽特征与低位宽特征获取量化后相似度。
[0049] 具体地,网络层的量化格式具体为网络层的权重的量化格式。以获取待量化层的量化格式设为第二量化格式时的输出作为高位宽特征的步骤为例,其具体量化操作即为将待量化层的网络层的权重的量化格式设为第二量化格式,获取输出;类似的,其他网络层的量化格式也是网络层的权重的量化格式。
[0050] 示例性地,若一神经网络模型的网络层依次为N1、N2、N3、N4,其中N1、N4为待量化层。获取该神经网络模型中待量化层的量化后相似度的步骤具体为:获取N2的权重的量化格式为第一量化格式时的输出作为N1的低位宽特征,获取N2的权重的量化格式为第二量化格式时的输出作为N1的高位宽特征,根据N1的高位宽特征与低位宽特征获取N1的量化后相似度;获取N4的权重的量化格式为第一量化格式时的输出作为N4的低位宽特征,获取N4的权重的量化格式为第二量化格式时的输出作为N4的高位宽特征,根据N4的高位宽特征与低位宽特征获取N4的量化后相似度。上例是对待量化层为网络层时的量化后相似度获取的概括例举,待量化层为网络层时的量化后相似度并不局限于上例。
[0051] 本发明实施例提供的动态混合量化训练方法,在获取网络层的量化后相似度时,对于非最后一层的网络层,根据其下一网络层的输出获取量化后相似度,能够扩大网络层的权重的量化格式变化的影响,有效获取量化后相似度反映待量化层受量化格式影响的大小,提高训练效果,进而提高训练后神经网络模型的精度,降低神经网络模型所占用的硬件内存。
[0052] 进一步地,在一个可选实施例中,如图2所示,当待量化层为激活层时,获取神经网络模型中待量化层的量化后相似度的步骤包括:
[0053] 获取待量化层的量化格式为第一量化格式时的激活值作为低位宽特征,并获取待量化层的量化格式为第二量化格式时的激活值作为高位宽特征,根据高位宽特征与低位宽特征获取量化后相似度。
[0054] 示例性地,若一神经网络的激活层依次为A1、A2、A3、A4,A2为待量化层。A2的量化后相似度的获取步骤包括:获取A2的量化格式为第一量化格式时的激活值作为低位宽特征,并获取A2的量化格式为第二量化格式时的激活值作为高位宽特征,根据A2的高位宽特征与低位宽特征获取量化后相似度。
[0055] 本发明实施例提供的动态混合量化训练方法,在获取激活层的量化后相似度时,采用激活层的激活值的变化获取量化后相似度,能够直接反应激活层在量化格式改变后的受影响的大小,提高训练效果,进而提高训练后神经网络模型的精度,降低神经网络模型所占用的硬件内存。
[0056] 再进一步地,在一个可选实施例中,根据高位宽特征与低位宽特征获取量化后相似度的步骤包括:
[0057] 获取高位宽特征与低位宽特征间的余弦相似度作为量化后相似度。
[0058] 示例性地,若一神经网络模型的网络层依次为N1、N2、N3、N4,其中N1、N4为待量化层。获取该神经网络模型中待量化层的量化后相似度的步骤具体为:获取N2的权重的量化格式为第一量化格式时的输出作为N1的低位宽特征,获取N2的权重的量化格式为第二量化格式时的输出作为N1的高位宽特征,获取N1的高位宽特征与低位宽特征间的余弦相似度作为N1的量化后相似度;获取N4的权重的量化格式为第一量化格式时的输出作为N4的低位宽特征,获取N4的权重的量化格式为第二量化格式时的输出作为N4的高位宽特征,获取N4的高位宽特征与低位宽特征间的余弦相似度作为N4的量化后相似度。
[0059] 示例性地,本实施例中仅为例举,若另一神经网络的激活层依次为A1、A2、A3、A4,A2为待量化层。A2的量化后相似度的获取步骤包括:获取A2的量化格式为第一量化格式时的激活值作为低位宽特征,并获取A2的量化格式为第二量化格式时的激活值作为高位宽特征,获取A2的高位宽特征与低位宽特征间的余弦相似度为量化后相似度。
[0060] 其中,余弦相似度是通过计算向量空间两个向量的夹角余弦值来评估他们的相似度。本实施例,通过获取网络层的权重量化格式分别为第一量化格式、第二量化格式时的输出向量间的余弦相似度或激活层的激活值分别为第一量化格式、第二量化格式时的激活值向量间的余弦相似度。
[0061] 本发明实施例提供的动态混合量化训练方法,利用余弦相似度作为量化后相似度,能够有效反应待量化层的量化格式变化后的影响大小,进而对影响大的待量化层设为第二量化格式,提高神经网络模型的精度,影响小的待量化层设为位宽较小的第一量化格式,不影响神经网络模型精度的同时降低模型的硬件内存占用,有效提高神经网络模型的训练效果。
[0062] 在一个可选实施例中,获取神经网络模型中当前量化格式为第一量化格式的待量化层的参数离散度的步骤包括:
[0063] 当待量化层为网络层时,获取待量化层的权重的方差作为参数离散度;当待量化层为激活层时,计算待量化层的激活值的方差作为参数离散度。
[0064] 本发明实施例提供的动态混合量化训练方法,利用权重的方差、激活值的方差能够有效反映不同待量化层的参数离散度,将训练中参数过于离散的待量化层的量化格式升为第二量化格式,提高其数值位宽,在训练中动态调整待量化层的量化格式,提高训练效果。
[0065] 在一个可选实施例中,第二预设数量随着神经网络模型的训练迭代次数的递增而递减。
[0066] 示例性地,第二预设数量的计算公式为:
[0067] N_2=init_restore_ratio*(1+cos(π*iter/iter_all))/2
[0068] 其中,N_2为第二预设数量,init_restore_ratio为预设的升位宽比率,iter为当前迭代次数,iter_all为总迭代次数,cos为余弦函数。init_restore_ratio一般定义为0.2。本实施例仅为例举,也可以采用其他的随迭代次数增加而递减的函数获取第二预设数量。
[0069] 本发明实施例提供的动态混合量化训练方法,第二预设数量随着神经网络模型的训练次数增加而递减,能够在训练中随着迭代次数增加逐步减少由第一量化格式升为第二量化格式的待量化层数量,随着迭代次数增加各待量化层的参数已经逐步稳定,通过减少第二预设数量,能与训练过程相适配,能够有效提高训练的可靠性和精度。
[0070] 下面对本发明提供的目标检测装置进行描述,下文描述的目标检测装置与上文描述的目标检测方法可相互对应参照。
[0071] 本发明提供的动态混合量化训练装置,如图3所示,包括:
[0072] 初始化模块31,在神经网络模型的训练迭代前,获取神经网络模型中待量化层的量化后相似度,对量化后相似度按照从大到小排序,并将与排序靠前的第一预设数量的量化后相似度对应的待量化层的量化格式设为第一量化格式,将其它待量化层的量化格式设为第二量化格式;
[0073] 量化训练模块32,用于在神经网络模型的训练迭代中,每经过预设的迭代次数后获取所述神经网络模型中当前量化格式为第一量化格式的待量化层的参数离散度,对参数离散度按照从大到小排序,将与排序靠前的第二预设数量的参数离散度对应的待量化层的量化格式设为第二量化格式;
[0074] 其中,第一量化格式的数值位宽小于第二量化格式。
[0075] 本发明实施例提供的动态混合量化训练装置,用量化后相似度代表待量化层的量化格式由第二量化格式降为第一量化格式后的结果损失大小,将结果损失小的第一预设数量的待量化层设为第一量化格式参与训练,其他待量化层设为第二量化格式参与训练,能够有效进行量化初始化,防止一些相对重要的层被赋予了位宽小的第一量化格式,提高训练精度和神经网络模型的精度,降低神经网络模型的硬件内存占用。
[0076] 本发明实施例提供的动态混合量化训练装置,参数离散度能反映训练过程中待量化层的当前量化格式的适配程度,将适配程度低即参数离散度较大的第二预设数量个的待量化层设为第二量化格式,能够把相对重要的层升为第二量化格式,能够有效提高训练精度和神经网络模型的精度,降低神经网络模型的硬件内存占用。
[0077] 在一个可选实施例中,待量化层包括神经网络模型的网络层和\或激活层。
[0078] 其中,和/或,用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0079] 具体地,神经网络模型中包括网络层和激活层,本发明所进行量化的待量化层可以包括神经网络模型中的所有网络层和激活层,也可以只包括神经网络模型中的部分网络层,也可以只包括神经网络模型中的部分激活层。在本发明开始训练前预设选定需要进行量化的网络层和\或激活层,进行量化操作。
[0080] 本发明实施例提供的动态混合量化训练装置,能够根据神经网络模型的结构和特点预选网络层和\或激活层进行量化操作,提高本发明的灵活程度,能够进一步对神经网络模型的不同层级的量化格式进行优化分配,提高训练后神经网络模型的精度,降低神经网络模型所占用的硬件内存,降低运行成本。
[0081] 图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行动态混合量化训练方法,该方法包括:在神经网络模型的训练迭代前,获取神经网络模型中待量化层的量化后相似度,并将量化后相似度从大到小排序靠前的第一预设数量的待量化层的量化格式设为第一量化格式,然后将量化格式为原格式的待量化层的量化格式设为第二量化格式;在神经网络模型的训练迭代中,每经过预设的迭代次数后获取神经网络模型中当前量化格式为第一量化格式的待量化层的参数离散度,将参数离散度从大到小排序靠前的多个待量化层的第二预设数量的量化格式设为第二量化格式;其中,第一量化格式的数值位宽小于第二量化格式。
[0082] 此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0083] 另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的动态混合量化训练方法,该方法包括:在神经网络模型的训练迭代前,获取神经网络模型中待量化层的量化后相似度,并将量化后相似度从大到小排序靠前的第一预设数量的待量化层的量化格式设为第一量化格式,然后将量化格式为原格式的待量化层的量化格式设为第二量化格式;在神经网络模型的训练迭代中,每经过预设的迭代次数后获取神经网络模型中当前量化格式为第一量化格式的待量化层的参数离散度,将参数离散度从大到小排序靠前的多个待量化层的第二预设数量的量化格式设为第二量化格式;其中,第一量化格式的数值位宽小于第二量化格式。
[0084] 又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的动态混合量化训练方法,该方法包括:在神经网络模型的训练迭代前,获取神经网络模型中待量化层的量化后相似度,并将量化后相似度从大到小排序靠前的第一预设数量的待量化层的量化格式设为第一量化格式,然后将量化格式为原格式的待量化层的量化格式设为第二量化格式;在神经网络模型的训练迭代中,每经过预设的迭代次数后获取神经网络模型中当前量化格式为第一量化格式的待量化层的参数离散度,将参数离散度从大到小排序靠前的多个待量化层的第二预设数量的量化格式设为第二量化格式;其中,第一量化格式的数值位宽小于第二量化格式。
[0085] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0086] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0087] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页 第1页 第2页 第3页