神经网络模型的量化方法、设备及计算机存储介质技术

技术编号:26033853 阅读:22 留言:0更新日期:2020-10-23 21:11
本申请提供一种神经网络模型的量化方法、设备及计算机存储介质。包括:对神经网络模型输入训练图片,进行第一数据类型的计算,获得神经网络模型中每一计算层的第一输入数据;根据至少两种算法获得每一计算层的至少两个初始量化因子;基于至少两个初始量化因子获得每一计算层量化后的至少两个第二输入数据;比较每一计算层中第一输入数据和每个第二输入数据的相关性;将相关性最大的第二输入数据对应的初始量化因子作为计算层的最终量化因子;将最终量化因子输入神经网络模型。本申请通过至少两种算法计算每一计算层的量化因子,并在比较后确定每一计算层的最优量化因子,从而提高了整个神经网络模型的量化精度。

【技术实现步骤摘要】
神经网络模型的量化方法、设备及计算机存储介质
本申请涉及神经网络
,特别是涉及一种神经网络模型的量化方法、设备及计算机存储介质。
技术介绍
目前,常见的神经网络量化方法是采用同一种算法对所有的卷积层和全连接层的输入激活值进行量化,但由于输入激活值的灵活可变性,采用一种算法会导致神经网络中某一层的误差变大,又因为网络结构的前馈性和复杂性,进一步导致神经网络在推理过程中误差越来越大,最终使神经网络模型的量化精度较差。
技术实现思路
本申请提供了一种神经网络模型的量化方法、设备及计算机存储介质,主要解决的技术问题是如何提高神经网络模型量化精度的问题。为解决上述技术问题,本申请提供了一种神经网络模型的量化方法,所述方法包括:对所述神经网络模型输入训练图片,进行第一数据类型的计算,获得所述神经网络模型中每一计算层的第一输入数据;根据至少两种算法获得所述每一计算层的至少两个初始量化因子;基于所述至少两个初始量化因子获得所述每一计算层量化后的至少两个第二输入数据;比较所述每一计算层中第一输入数据和每个第二输入数据的相关性;将相关性最大的第二输入数据对应的初始量化因子作为所述计算层的最终量化因子;将所述最终量化因子输入所述神经网络模型。根据本申请提供的一实施方式,所述方法还包括:将所述计算层之后的数据归一层合并至所述计算层以进行计算。根据本申请提供的一实施方式,所述计算层包括卷积层和全连接层;所述方法还包括:将所述卷积层、全连接层的前一层的输出数据类型设置为第二数据类型。根据本申请提供的一实施方式,所述方法还包括:将所述非计算层的前一层的输出数据类型设置为第二数据类型。根据本申请提供的一实施方式,所述量化因子包括权重量化因子和输入量化因子;所述将所述最终量化因子输入所述神经网络模型,包括:将所述计算层的输入量化因子传输至前一层,使得所述前一层的输出数据为第二数据类型。根据本申请提供的一实施方式,所述第一数据类型为浮点类型,所述第二数据类型为定点类型。根据本申请提供的一实施方式,所述将所述最终量化因子输入所述神经网络模型,还包括:根据所述权重量化因子计算得到量化权重值,将所述量化权重值输入所述神经网络模型。根据本申请提供的一实施方式,所述将所述最终量化因子输入所述神经网络模型,包括:根据所述量化因子将所述计算层的偏置值转换为所述计算层的输出数据类型。为解决上述技术问题,本申请提供了一种终端设备,所述设备包括存储器以及与所述存储器耦接的处理器;所述存储器用于存储程序数据,所述处理器用于执行所述程序数据以实现如上述的神经网络模型的量化方法。为解决上述技术问题,本申请还提供了一种计算机存储介质,所述计算机存储介质用于存储程序数据,所述程序数据在被处理器执行时,用以实现如上述的神经网络模型的量化方法。本申请的有益效果是:对神经网络模型输入训练图片,进行第一数据类型的计算,获得神经网络模型中每一计算层的第一输入数据;根据至少两种算法获得每一计算层的至少两个初始量化因子;基于至少两个初始量化因子获得每一计算层量化后的至少两个第二输入数据;比较每一计算层中第一输入数据和每个第二输入数据的相关性;将相关性最大的第二输入数据对应的初始量化因子作为计算层的最终量化因子;将最终量化因子输入神经网络模型。本申请的神经网络模型的量化方法通过至少两种算法计算每一计算层的至少两个初始量化因子,将每一计算层的至少两个初始量化因子与每一计算层的第一输入数据进行相关性的比较,以将相关性最大的第二输入数据对应的初始量化因子作为最终量化因子,即精度最优的量化因子,将最终量化因子输入神经网络模型,提高了整个神经网络模型的量化精度。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:图1是本申请提供的神经网络模型的量化方法一实施例的流程示意图;图2是现有技术中卷积层和全连接层量化运算的流程示意图;图3是本申请提供的终端设备一实施例的结构示意图;图4是本申请提供的计算机存储介质一实施例的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。现有技术中,通常会采用一种算法对神经网络模型中所有的卷积层和全连接层的输入激活值进行量化,以此提高神经网络模型的精度。但采用同一种算法对所有的卷积层和全连接层的输入激活值进行量化时,由于输入激活值的灵活可变性,导致神经网络模型中某一层的误差变大,又由于神经网络模型的前馈性和复杂性,神经网络模型在推理过程中的误差会越来越大,最终使神经网络模型的量化精度较差。为了解决上述技术问题,本申请提出了一种神经网络模型的量化方法,具体请参阅图1,图1是本申请提供的神经网络模型的量化方法一实施例的流程示意图。本实施例中神经网络模型的量化方法可以应用于神经网络模型量化的终端设备,也可应用于具有数据处理能力的服务器。本实施例的神经网络模型的量化方法具体包括以下步骤:S101:对神经网络模型输入训练图片,进行第一数据类型的计算,获得神经网络模型中每一计算层的第一输入数据。为了快速训练模型得到精度最优的神经网络模型,可在训练图像中随机选取若干张图像输入神经网络模型中,例如,100张,并按照第一数据类型计算,以获得神经网络模型中每一计算层的第一输入数据。其中,第一数据类型为浮点类型,浮点类型就是实数,浮点是计算机中用以近似表示任意某个实数。计算层可以为卷积层或者全连接层。第一输入数据为每个卷积层或者全连接层的输入数据绝对值的最大值和每个卷积层或者全连接层的权重数据绝对值的最大值。S102:根据至少两种算法获得每一计算层的至少两个初始量化因子。本实施例采用至少两种算法获得量化因子,具体可以为两种算法或者三种算法,对具体的算法数量不作限定。对于算法的种类,本领域的技术人员可以根据实际情况进行设置。例如,采用两种算法获取每一计算层的两个初始量化因子,两种算法可以分别为global-sacle算法和kl-divergence算法。在实际应用中,采用global-sacle算法和kl-divergence算法获取每一计算层的两个初始量化因子时,利用global-sacle算法,获取到每一计算层的初始量化因子M;利用kl-divergence算法,获取到每一计算层的初始量化因子N。其中,量化因子包括权重量化因子和输入量化因子。具体地,可采用global-sacle算法,本文档来自技高网...

【技术保护点】
1.一种神经网络模型的量化方法,其特征在于,所述方法包括:/n对所述神经网络模型输入训练图片,进行第一数据类型的计算,获得所述神经网络模型中每一计算层的第一输入数据;/n根据至少两种算法获得所述每一计算层的至少两个初始量化因子;/n基于所述至少两个初始量化因子获得所述每一计算层量化后的至少两个第二输入数据;/n比较所述每一计算层中第一输入数据和每个第二输入数据的相关性;/n将相关性最大的第二输入数据对应的初始量化因子作为所述计算层的最终量化因子;/n将所述最终量化因子输入所述神经网络模型。/n

【技术特征摘要】
1.一种神经网络模型的量化方法,其特征在于,所述方法包括:
对所述神经网络模型输入训练图片,进行第一数据类型的计算,获得所述神经网络模型中每一计算层的第一输入数据;
根据至少两种算法获得所述每一计算层的至少两个初始量化因子;
基于所述至少两个初始量化因子获得所述每一计算层量化后的至少两个第二输入数据;
比较所述每一计算层中第一输入数据和每个第二输入数据的相关性;
将相关性最大的第二输入数据对应的初始量化因子作为所述计算层的最终量化因子;
将所述最终量化因子输入所述神经网络模型。


2.根据权利要求1所述的量化方法,其特征在于,所述方法还包括:
将所述计算层之后的数据归一层合并至所述计算层以进行计算。


3.根据权利要求1所述的量化方法,其特征在于,所述计算层包括卷积层和全连接层;所述方法还包括:
将所述卷积层、全连接层的前一层的输出数据类型设置为第二数据类型。


4.根据权利要求3所述的量化方法,其特征在于,所述方法还包括:
将非计算层的前一层的输出数据类型设置为第二数据类型。


5.根据权利要求3所述的量化方法,其特征在于,所述量化因子包括权重量化因子...

【专利技术属性】
技术研发人员:周旭亚
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1