掌桥专利:专业的专利平台
掌桥专利
首页

离线量化调优方法、装置、设备、介质及程序产品

文献发布时间:2023-06-19 11:29:13


离线量化调优方法、装置、设备、介质及程序产品

技术领域

本申请实施例涉及人工智能技术领域,并且更具体地,涉及一种模型离线量化调优方法、装置、设备、介质及程序产品。

背景技术

随着人工智能技术的快速发展,神经网络模型在在系统辨识、模式识别、智能控制等领域都有着广泛的应用。

目前,对于神经网络模型,现有的离线量化方式,大多通过迭代更新权重的方式,使得量化精度更高。其中,主要分为两种方式,分别是离线量化和量化重训练,其中,离线量化所用到的输入数量少,使用方便。

但是,在进行离线量化训练时,用上述少量的输入进行评估时,亟需一种能够对模型进行高效调优的方式。

发明内容

本申请实施例提供的离线量化调优方法、装置、设备、介质及程序产品,以实现在少量输入数据的基础上,能够对模型进行高效的调优。

第一方面,本申请实施例提供了一种离线量化调优方法,包括:

获取预设网络模型中的待调优网络,其中,所述待调优网络包括多个卷积层;

对所述待调优网络中各个卷积层的权重参数进行调整,其中,所述待调优网络的输出精度保持不变;

确定不同权重参数分配状态下所述待调优网络的调优输出结果;

根据模拟量化输出结果以及不同权重参数所对应的调优输出结果之间的相似度,确定所述待调优网络中各个卷积层的调优权重参数。

在一种可能的设计中,所述对所述待调优网络中各个卷积层的权重参数进行调整,包括:

为所述待调优网络分配基础权重参数组合,所述待调优网络包括N个卷积层,所述基础权重参数组合包括N个基础权重参数,所述待调优网络的卷积层与所述基础权重参数组的基础权重参数一一对应,其中,N为正整数;

为所述待调优网络分配调优权重参数组合,所述调优权重参数组合包括N个调优权重参数,所述待调优网络的卷积层与所述调优权重参数组的基础权重参数一一对应,其中,各个调优权重参数相对于所对应的基础权重参数的调优倍数的乘积为预设固定值。

在一种可能的设计中,确定不同权重参数分配状态下所述待调优网络的调优输出结果,包括:

根据不同的调优权重参数组合,确定所述待调优网络的调优输出结果,其中,每次的调优权重参数组合作为下一次调优权重参数分配的基础权重参数组合。

在一种可能的设计中,所述根据不同的调优权重参数组合,确定所述待调优网络的调优输出结果,包括:

若所述待调优网络包括第一普通卷积层以及第二普通卷积层,所述第二普通卷积层为所述第一普通卷积层的后端,则根据不同的调优权重参数组合,确定所述第二普通卷积层的结果输出为所述调优输出结果;或者,

若所述待调优网络包括第一普通卷积层、中间特定卷积层以及第二普通卷积层,所述中间特定卷积层为所述第一普通卷积层的后端,所述第二普通卷积层为所述中间特定卷积层的后端,则根据不同的调优权重参数组合,确定所述第二普通卷积层的结果输出为所述调优输出结果。

在一种可能的设计中,所述第一普通卷积层与所述第二普通卷积层存在至少一个线性整流函数。

在一种可能的设计中,所述根据模拟量化输出结果以及不同权重参数所对应的调优输出结果之间的相似度,确定所述待调优网络中各个卷积层的调优权重参数,包括:

分别确定所述模拟量化输出结果以及各次调优权重参数组合所对应的调优输出结果之间的余弦相似度;

确定所述余弦相似度最高的调优权重参数组合作为所述待调优网络中各个卷积层的调优权重参数。

在一种可能的设计中,所述获取预设网络模型中的待调优网络,包括:

依次获取所述预设网络模型中的各个待选网络,并确定所述待选网络中的连续卷积层数以及各个卷积层的卷积类型;

若所述连续卷积层数符合预设层数条件,且所述卷积类型符合预设类型条件,则确定所述待选网络为所述待调优网络。

第二方面,本申请实施例提供了一种离线量化调优装置,包括:

获取模块,用于获取预设网络模型中的待调优网络,其中,所述待调优网络包括多个卷积层;

处理模块,用于对所述待调优网络中各个卷积层的权重参数进行调整,其中,所述待调优网络的输出精度保持不变;

所述处理模块,还用于确定不同权重参数分配状态下所述待调优网络的调优输出结果;

调优模块,还用于根据模拟量化输出结果以及不同权重参数所对应的调优输出结果之间的相似度,确定所述待调优网络中各个卷积层的调优权重参数。

在一种可能的设计中,所述处理模块,具体用于:

为所述待调优网络分配基础权重参数组合,所述待调优网络包括N个卷积层,所述基础权重参数组合包括N个基础权重参数,所述待调优网络的卷积层与所述基础权重参数组的基础权重参数一一对应,其中,N为正整数;

为所述待调优网络分配调优权重参数组合,所述调优权重参数组合包括N个调优权重参数,所述待调优网络的卷积层与所述调优权重参数组的基础权重参数一一对应,其中,各个调优权重参数相对于所对应的基础权重参数的调优倍数的乘积为预设固定值。

在一种可能的设计中,所述调优模块,具体用于:

根据不同的调优权重参数组合,确定所述待调优网络的调优输出结果,其中,每次的调优权重参数组合作为下一次调优权重参数分配的基础权重参数组合。

在一种可能的设计中,所述处理模块,具体用于:

若所述待调优网络包括第一普通卷积层以及第二普通卷积层,所述第二普通卷积层为所述第一普通卷积层的后端,则根据不同的调优权重参数组合,确定所述第二普通卷积层的结果输出为所述调优输出结果;或者,

若所述待调优网络包括第一普通卷积层、中间特定卷积层以及第二普通卷积层,所述中间特定卷积层为所述第一普通卷积层的后端,所述第二普通卷积层为所述中间特定卷积层的后端,则根据不同的调优权重参数组合,确定所述第二普通卷积层的结果输出为所述调优输出结果。

在一种可能的设计中,所述第一普通卷积层与所述第二普通卷积层存在至少一个线性整流函数。

在一种可能的设计中,所述调优模块,具体用于:

分别确定所述模拟量化输出结果以及各次调优权重参数组合所对应的调优输出结果之间的余弦相似度;

确定所述余弦相似度最高的调优权重参数组合作为所述待调优网络中各个卷积层的调优权重参数。

在一种可能的设计中,所述获取模块,具体用于:

依次获取所述预设网络模型中的各个待选网络,并确定所述待选网络中的连续卷积层数以及各个卷积层的卷积类型;

若所述连续卷积层数符合预设层数条件,且所述卷积类型符合预设类型条件,则确定所述待选网络为所述待调优网络。

第三方面,本申请实施例还提供一种电子设备,包括:处理器以及存储器,所述处理器分别与所述存储器连接;

所述存储器,用于存储所述处理器的计算机程序;

其中,所述处理器被配置为通过执行所述计算机程序来实现第一方面中任一种可能的离线量化调优方法。

第四方面,本申请实施例还提供一种机器可读存储介质,其上存储有可执行指令,所述可执行指令在被机器执行时使得实现第一方面中任一种可能的离线量化调优方法。

第五方面,本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现第一方面中任一种可能的离线量化调优方法。

可见,在上述技术方案中,通过获取预设网络模型中的包括多个卷积层的待调优网络,并对待调优网络中各个卷积层的权重参数进行调整,然后,确定不同权重参数分配状态下待调优网络的调优输出结果,并且根据模拟量化输出结果以及不同权重参数所对应的调优输出结果之间的相似度,确定待调优网络中各个卷积层的调优权重参数,以实现在少量输入数据的基础上,能够对模型进行高效的调优。

附图说明

为了更清楚地说明本申请的实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单介绍。然而,本领域技术人员应当理解的是,下面描述中的附图仅仅是本申请的一些示例,并不限制其范围。

图1是本申请根据一示例性实施例示出的离线量化调优方法的应用网络架构图;

图2是本申请根据一示例性实施例示出的离线量化调优方法的流程示意图;

图3是本申请根据一示例性实施例示出的离线量化调优方法的流程示意图;

图4是本申请根据另一示例性实施例示出的离线量化调优装置的结构示意图;

图5是本申请根据一示例性实施例示出的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。本领域技术人员应当理解的是,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员可以进行任何适当的修改或变型,从而获得的所有其它实施例。

目前,对于神经网络模型,现有的离线量化方式,大多通过迭代更新权重的方式,使得量化精度更高。其中,主要分为两种方式,分别是离线量化和量化重训练,其中,离线量化所用到的输入数量少,使用方便。但是,在进行离线量化训练时,用上述少量的输入进行评估时,存在较大的过拟合风险。但是,由于离线量化载入图片量远小于训练用图,目前现有得离线量化方式除了会损失FP32精度外,还会造成大量得过拟合风险。

可见,现有量化策略无法很好得保证离线量化得调优效果及泛化效果。大量不可评估权重调优方式很大得可能造成最终结果得严重过拟合。

鉴于此,本申请实施例提供了一种离线量化调优方法、装置、设备、介质及程序产品,旨在少量输入数据得基础上,对量化模型进行高效得调优。下面将结合具体实施例来详细描述上述技术方案。

图1是本申请根据一示例性实施例示出的离线量化调优方法的应用网络架构图。如图1所示,本实施例提供的离线量化调优方法应用于预设神经网络模型,其中,该预设神经网络模型可以包括多个卷积层。可以通过层间检测模块,来判断两个包含权重参数的层间是否满足联调要求,然后,通过层间搜索模块,对层间权重参数得缩放,在改变权重参数分布的基础上使得联调层的最终输出保持跟原始FP32相同,同时一定程度减少了过拟合得风险。然后,可以通过层间评估模块,对层间搜索模块部分进行多次迭代,并评估量化损失。最后,利用更新模块,根据评估结果对搜索模块得结果进行筛选,得到最终得量化调优分布;

图2是本申请根据一示例性实施例示出的离线量化调优方法的流程示意图。如图2所示,本实施例提供的离线量化调优方法,包括:

S101、获取预设网络模型中的待调优网络。

在本步骤中,获取预设网络模型中的待调优网络,其中,待调优网络包括多个卷积层。值得说明的,待调优网络可以包括连续两个卷积层或者连续三个卷积层,并且,在卷积层之间还可以包括线性整流函数(Rectified Linear Unit,简称ReLU)激活。ReLU,又称修正线性单元,是一种人工神经网络中常用的激活函数,通常指代以斜坡函数及其变种为代表的非线性函数。

S102、对待调优网络中各个卷积层的权重参数进行调整。

在本步骤中,对待调优网络中各个卷积层的权重参数进行调整,其中,待调优网络的输出精度保持不变。其中,可以是应用于8bit及更低bit离线量化调优,对多层神经网络之间得权重做联合均衡,使得在不改变最终FP32输出得基础上,对权重得分布进行修改,以满足量化分布得需求,以实现FP32精度无损的,高效的离线量化方式。

S103、确定不同权重参数分配状态下待调优网络的调优输出结果。

在利用不同的权重参数对待调优网络中各个卷积层的权重参数进行调整之后,确定不同权重参数分配状态下待调优网络的调优输出结果。

S104、根据模拟量化输出结果以及不同权重参数所对应的调优输出结果之间的相似度,确定待调优网络中各个卷积层的调优权重参数。

最后,可以是分别确定模拟量化输出结果以及各次调优权重参数组合所对应的调优输出结果之间的余弦相似度,然后,将余弦相似度最高的调优权重参数组合作为待调优网络中各个卷积层的调优权重参数。

在本实施例中,通过获取预设网络模型中的包括多个卷积层的待调优网络,并对待调优网络中各个卷积层的权重参数进行调整,然后,确定不同权重参数分配状态下待调优网络的调优输出结果,并且根据模拟量化输出结果以及不同权重参数所对应的调优输出结果之间的相似度,确定待调优网络中各个卷积层的调优权重参数,以实现在少量输入数据的基础上,能够对模型进行高效的调优。

此外,由于在对待调优网络中各个卷积层的权重参数进行调整的过程中,始终保持待调优网络的输出精度不变,因此,可以在不改变最终输出的基础上,对权重得分布进行修改,以满足量化分布得需求,实现精度无损且高效离线量化方式。

图3是本申请根据一示例性实施例示出的离线量化调优方法的流程示意图。如图3所示,本实施例提供的离线量化调优方法,包括:

S201、依次获取预设网络模型中的各个待选网络,并确定待选网络中的连续卷积层数以及各个卷积层的卷积类型。

在本步骤中,依次获取预设网络模型中的各个待选网络,并确定待选网络中的连续卷积层数以及各个卷积层的卷积类型。其中,待调优网络可以包括连续两个卷积层或者连续三个卷积层,而对于卷积层的卷积类型可以为普通卷积层或者是特定卷积层(例如:Depthwise卷积层)。

S202、若连续卷积层数符合预设层数条件,且卷积类型符合预设类型条件,则确定待选网络为待调优网络。

在本步骤中,例如,待调优网络可以包括两个连续普通卷积(中间可以有relu),具体的,可以是包括第一普通卷积层以及第二普通卷积层,第二普通卷积层为第一普通卷积层的后端。或者,待调优网络可以包括三个卷积层,具体的,可以是包括第一普通卷积层、中间特定卷积层以及第二普通卷积层,中间特定卷积层为第一普通卷积层的后端,第二普通卷积层为中间特定卷积层的后端。从而将上述连续卷积层数符合预设层数条件,且卷积类型符合预设类型条件的待调优网络进行合并调试。

S203、为待调优网络分配基础权重参数组合。

S204、为待调优网络分配调优权重参数组合。

在S203-S204中,可以是为待调优网络分配基础权重参数组合,其中,待调优网络包括N个卷积层,基础权重参数组合包括N个基础权重参数,待调优网络的卷积层与基础权重参数组的基础权重参数一一对应,其中,N为正整数。为待调优网络分配调优权重参数组合,调优权重参数组合包括N个调优权重参数,待调优网络的卷积层与调优权重参数组的基础权重参数一一对应,其中,各个调优权重参数相对于所对应的基础权重参数的调优倍数的乘积为预设固定值。

在一种可能中,待调优网络包括2个卷积层,通过连续卷积的相对缩放,例如,可以是将第一卷积层放大10倍,第二卷积层缩小10倍,则上述的各个调优权重参数相对于所对应的基础权重参数的调优倍数的乘积为1,从而使连续卷积的FP32输出保持跟原始FP32输出一致。

S205、根据不同的调优权重参数组合,确定待调优网络的调优输出结果。

具体的,根据不同的调优权重参数组合,确定待调优网络的调优输出结果,其中,每次的调优权重参数组合作为下一次调优权重参数分配的基础权重参数组合。即可以是在各个缩放倍数下,对应的量化输出,并记录记录所有观测结果。

可选的,若待调优网络包括第一普通卷积层以及第二普通卷积层,第二普通卷积层为第一普通卷积层的后端,则根据不同的调优权重参数组合,确定第二普通卷积层的结果输出为调优输出结果。

又或者,若待调优网络包括第一普通卷积层、中间特定卷积层(例如:Depthwise卷积)以及第二普通卷积层,中间特定卷积层为第一普通卷积层的后端,第二普通卷积层为中间特定卷积层的后端,则根据不同的调优权重参数组合,确定第二普通卷积层的结果输出为调优输出结果。

S206、分别确定模拟量化输出结果以及各次调优权重参数组合所对应的调优输出结果之间的余弦相似度。

S207、确定余弦相似度最高的调优权重参数组合作为待调优网络中各个卷积层的调优权重参数。

在上述实施例的基础上,可以通过重复S202-S307,从而完成对全模型所有连续卷积的权重量化调优。进而对多层神经网络之间的权重参数做联合均衡,使得在不改变最终FP32输出的基础上,对权重的分布进行修改,以满足量化分布的需求,达到量化调优的效果。

图4是本申请根据另一示例性实施例示出的离线量化调优装置的结构示意图。如图4所示,本实施例提供的离线量化调优装置300,包括:

获取模块301,用于获取预设网络模型中的待调优网络,其中,所述待调优网络包括多个卷积层;

处理模块302,用于对所述待调优网络中各个卷积层的权重参数进行调整,其中,所述待调优网络的输出精度保持不变;

所述处理模块302,还用于确定不同权重参数分配状态下所述待调优网络的调优输出结果;

调优模块303,还用于根据模拟量化输出结果以及不同权重参数所对应的调优输出结果之间的相似度,确定所述待调优网络中各个卷积层的调优权重参数。

在一种可能的设计中,所述处理模块302,具体用于:

为所述待调优网络分配基础权重参数组合,所述待调优网络包括N个卷积层,所述基础权重参数组合包括N个基础权重参数,所述待调优网络的卷积层与所述基础权重参数组的基础权重参数一一对应,其中,N为正整数;

为所述待调优网络分配调优权重参数组合,所述调优权重参数组合包括N个调优权重参数,所述待调优网络的卷积层与所述调优权重参数组的基础权重参数一一对应,其中,各个调优权重参数相对于所对应的基础权重参数的调优倍数的乘积为预设固定值。

在一种可能的设计中,所述调优模块303,具体用于:

根据不同的调优权重参数组合,确定所述待调优网络的调优输出结果,其中,每次的调优权重参数组合作为下一次调优权重参数分配的基础权重参数组合。

在一种可能的设计中,所述处理模块302,具体用于:

若所述待调优网络包括第一普通卷积层以及第二普通卷积层,所述第二普通卷积层为所述第一普通卷积层的后端,则根据不同的调优权重参数组合,确定所述第二普通卷积层的结果输出为所述调优输出结果;或者,

若所述待调优网络包括第一普通卷积层、中间特定卷积层以及第二普通卷积层,所述中间特定卷积层为所述第一普通卷积层的后端,所述第二普通卷积层为所述中间特定卷积层的后端,则根据不同的调优权重参数组合,确定所述第二普通卷积层的结果输出为所述调优输出结果。

在一种可能的设计中,所述第一普通卷积层与所述第二普通卷积层存在至少一个线性整流函数。

在一种可能的设计中,所述调优模块303,具体用于:

分别确定所述模拟量化输出结果以及各次调优权重参数组合所对应的调优输出结果之间的余弦相似度;

确定所述余弦相似度最高的调优权重参数组合作为所述待调优网络中各个卷积层的调优权重参数。

在一种可能的设计中,所述获取模块301,具体用于:

依次获取所述预设网络模型中的各个待选网络,并确定所述待选网络中的连续卷积层数以及各个卷积层的卷积类型;

若所述连续卷积层数符合预设层数条件,且所述卷积类型符合预设类型条件,则确定所述待选网络为所述待调优网络。

在本申请实施例中,模块的划分仅仅为一种逻辑功能划分,在实际实现时还可以有另外的划分方式。例如,多个模块或组件可以进行组合或者可以集成到另一个系统中。另外,各个模块之间的耦合可以是直接耦合或间接耦合。另外,在本申请实施例中的各功能模块可以集成在一个处理模块中,也可以是单独的物理存在等等。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在机器可读存储介质中。因此,本申请的技术方案可以以软件产品的形式来体现,该软件产品可以存储在机器可读存储介质中,其可以包括若干指令用以使得电子设备执行本申请实施例所描述的技术方案的全部或部分过程。上述存储介质可以包括ROM、RAM、可移动盘、硬盘、磁盘或者光盘等各种可以存储程序代码的介质。

图5是本申请根据一示例性实施例示出的电子设备的结构示意图。如图5所示,本实施例提供的电子设备400,包括:

处理器401以及存储器402,所述处理器401与所述存储器403连接;

所述存储器402,用于存储所述处理器401的计算机程序;

其中,所述处理器401被配置为通过执行所述计算机程序来实现上述任一方法实施例中的步骤。

可选地,存储器402既可以是独立的,也可以跟处理器401集成在一起。

当所述存储器402是独立于处理器401之外的器件时,所述电子设备400,还可以包括:

总线403,用于连接所述处理器401以及所述存储器402。

此外,本申请实施例还提供一种机器可读存储介质。该机器可读存储介质可以存储有可执行指令,可执行指令在被机器执行时使得机器实现上面方法实施例中的具体过程。

本申请上述的机器可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

本申请实施例还提供一种程序产品,该程序产品包括计算机程序,该计算机程序存储在可读存储介质中。电子设备的至少一个处理器可以从可读存储介质读取该计算机程序,至少一个处理器执行该计算机程序使得电子设备实施上述方法中的各个步骤。

此外,本领域技术人员可以明白的是,结合本文中所公开的实施例描述的各示例的单元及算法步骤能够以电子硬件、或者软件和电子硬件的结合来实现。这些功能是以硬件还是软件方式来实现,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以针对每个特定的应用,使用不同的方式来实现所描述的功能,但是这种实现并不应认为超出本申请的范围。

以上内容仅为本申请的具体实施方式,本申请的保护范围并不局限于此。本领域技术人员在本申请所公开的技术范围内可以进行变化或替换,这些变化或替换都应当在本申请的保护范围之内。

相关技术
  • 离线量化调优方法、装置、设备、介质及程序产品
  • 模型量化方法、装置、设备、存储介质及计算机程序产品
技术分类

06120112940092