CN114861886B - 神经网络模型的量化方法及其装置 - Google Patents
神经网络模型的量化方法及其装置 Download PDFInfo
- Publication number
- CN114861886B CN114861886B CN202210611599.7A CN202210611599A CN114861886B CN 114861886 B CN114861886 B CN 114861886B CN 202210611599 A CN202210611599 A CN 202210611599A CN 114861886 B CN114861886 B CN 114861886B
- Authority
- CN
- China
- Prior art keywords
- quantization
- neural network
- network model
- floating point
- floating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种神经网络模型的量化方法及其装置,涉及智能交通、自动驾驶以及深度学习等人工智能领域。具体实现方案为:获取训练后的浮点型神经网络模型;将目标领域数据集中的测试集输入至浮点型神经网络模型,获得模型输出结果;基于浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到指定比特后模型的输出结果;根据浮点型神经网络模型的输出结果和各层调整到指定比特量化对应的模型输出结果,确定不同层对指定比特量化的敏感度;根据浮点型神经网络模型中不同层对指定比特量化的敏感度,对浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型。
Description
技术领域
本申请涉及数据处理领域,尤其涉及智能交通、自动驾驶以及深度学习等人工智能领域,特别涉及一种神经网络模型的量化方法及其装置。
背景技术
随着机器学习、深度学习的不断发展,深度神经网络被广泛的运用在自动驾驶、计算机视觉、自然语言处理、语音识别和数据处理等各个方面。以自动驾驶领域中的物料检测为例,通常是采用训练好的神经网络模型对输入数据进行预测处理,以得到对应的物料检测结果。但是,通常训练好的神经网络模型中的数据通常为32位浮点数,为了使得训练好的神经网络模型可以部署到不同硬件设备(如移动端设备)上,通常对神经网络模型进行量化。
神经网络模型量化是一种流行的深度学习优化方法,其中模型数据从32位浮点数(FP32)转换成定点数(如INT8),使得量化后的模型尺寸缩小,所占用内存比较小,另外,计算使用定点乘法器而不是浮点乘法器,速度更快,并且访问内存所占用的传输带宽更低。基于以上优点,模型量化成为在嵌入式设备上进行网络模型加速的一个重要手段。
发明内容
本申请提供了一种神经网络模型的量化方法、装置、电子设备以及存储介质。
根据本申请的第一方面,提供了一种神经网络模型的量化方法,包括:
获取浮点型神经网络模型;其中,所述浮点型神经网络模型为经过训练后的模型;
将目标领域数据集中的测试集输入至所述浮点型神经网络模型,获得所述浮点型神经网络模型的输出结果;
基于所述浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到所述指定比特后模型的输出结果;
根据所述浮点型神经网络模型的输出结果和各层调整到所述指定比特量化对应的模型输出结果,确定所述浮点型神经网络模型中不同层对指定比特量化的敏感度;
根据所述浮点型神经网络模型中不同层对指定比特量化的敏感度,对所述浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型;其中,所述定点型神经网络模型之中所有层的精度均为所述指定比特。
根据本申请的第二方面,提供了一种神经网络模型的量化装置,包括:
第一获取模块,用于获取浮点型神经网络模型;其中,所述浮点型神经网络模型为经过训练后的模型;
第二获取模块,用于将目标领域数据集中的测试集输入至所述浮点型神经网络模型,获得所述浮点型神经网络模型的输出结果;
第三获取模块,用于基于所述浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到所述指定比特后模型的输出结果;
确定模块,用于根据所述浮点型神经网络模型的输出结果和各层调整到所述指定比特量化对应的模型输出结果,确定所述浮点型神经网络模型中不同层对指定比特量化的敏感度;
第一量化模块,用于根据所述浮点型神经网络模型中不同层对指定比特量化的敏感度,对所述浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型;其中,所述定点型神经网络模型之中所有层的精度均为所述指定比特。
根据本申请的第三方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如前述第一方面所述的方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行如前述第一方面所述的方法。
根据本申请的第五方面,提供了一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现如前述第一方面所述方法的步骤。
根据本申请的技术方案,可以对训练好的浮点型神经网络模型进行训练后量化,使得量化后的模型适用于嵌入式设备上,并且可以解决相关技术中训练后量化过程中精度损失比较大的问题。另外,通过浮点型神经网络模型中不同层对指定比特量化的敏感度,对浮点型神经网络模型进行渐进式量化,使得神经网模型中的所有网络层精度调整为指定比特,提升精度的同时不影响推理速度,适合于神经网络模型定点量化加速领域。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1为本申请实施例所提供的一种神经网络模型的量化方法的流程图;
图2为本申请实施例所提供的另一种神经网络模型的量化方法的流程图;
图3为本申请实施例所提供的又一种神经网络模型的量化方法的流程图;
图4为本申请实施例提供的量化敏感层的渐进式量化方式的流程图。
图5为本申请实施例所提供的另一种神经网络模型的量化方法的流程图;
图6为本申请实施例所提供的一种神经网络模型的量化装置的结构框图;
图7为本申请实施例所提供的另一种神经网络模型的量化装置的结构框图;
图8为本申请实施例所提供的又一种神经网络模型的量化装置的结构框图;
图9是用来实现本申请实施例的神经网络模型的量化方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
随着机器学习、深度学习的不断发展,深度神经网络被广泛的运用在自动驾驶、计算机视觉、自然语言处理、语音识别和数据处理等各个方面。以自动驾驶领域中的物料检测为例,通常是采用训练好的神经网络模型对输入数据进行预测处理,以得到对应的物料检测结果。但是,通常训练好的神经网络模型中的数据通常为32位浮点数,为了使得训练好的神经网络模型可以部署到不同硬件设备(如移动端设备)上,通常对神经网络模型进行量化。
神经网络模型量化是一种流行的深度学习优化方法,其中模型数据从32位浮点数(FP32)转换成定点数(如INT8),使得量化后的模型尺寸缩小,所占用内存比较小,另外,计算使用定点乘法器而不是浮点乘法器,速度更快,并且访问内存所占用的传输带宽更低。基于以上优点,模型量化成为在嵌入式设备上进行网络模型加速的一个重要手段。因此,如何能够使得训练好的神经网络模型较好的适用于嵌入式设备上,成为亟待解决的问题。
为此,本申请提出一种神经网络模型的量化方法,可以对训练好的浮点型神经网络模型进行训练后量化,使得量化后的模型适用于嵌入式设备上,并且可以解决相关技术中训练后量化过程中精度损失比较大的问题;另外对神经网模型中的所有网络层精度调整为指定比特,提升精度的同时不影响推理速度,适合于神经网络模型定点量化加速领域。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请中的神经网络模型可以是目标领域下所使用的模型。其中,该目标领域可以是自动驾驶、计算机视觉、自然语言处理、语音识别和数据处理等领域。也就是说,本申请提供的神经网络模型训练后量化提升精度的算法,可以适用于图像目标检测分割,激光雷达点云目标检测,语音识别,自然语言处理等领域。
作为一种示例,该目标领域可以是自动驾驶领域。在一些实施例中,该神经网络模型可以是自动驾驶领域下的模型,例如用于实现车辆自动驾驶的自动驾驶模型,或者还可以是其他模型,如自动驾驶视觉模型等,对此不再一一穷举。
图1为本申请实施例所提供的一种神经网络模型的量化方法的流程图。需要说明的是,本申请实施例的量化方法可应用于本申请实施例的神经网络模型的量化装置,该量化装置可被配置于电子设备上。如图1所示,该神经网络模型的量化方法可以包括但不限于以下步骤。
在步骤101中,获取浮点型神经网络模型。其中,浮点型神经网络模型为经过训练后的模型。
在一些实施例中,该浮点型神经网络模型的模型数据(如模型权重和激活层的数据)均为32位浮点数。其中,该浮点型神经网络模型可以为采用目标领域的训练数据经过训练后的模型。作为一种示例,该浮点型神经网络模型可以是采用自动驾驶领域训练数据经过训练后的自动驾驶模型。
可以理解,本申请实施例的量化方法采用的是训练后量化,即在不清楚模型的损失函数(也就是说不训练网络模型)的情况下,对浮点型神经网络模型进行训练后量化。
在步骤102中,将目标领域数据集中的测试集输入至浮点型神经网络模型,获得浮点型神经网络模型的输出结果。
其中,该目标领域可以是自动驾驶、计算机视觉、自然语言处理、语音识别和数据处理等领域。也就是说,本申请提供的神经网络模型训练后量化提升精度的算法,可以适用于图像目标检测分割,激光雷达点云目标检测,语音识别,自然语言处理等领域。
作为一种示例,该目标领域可以是自动驾驶领域。在一些实施例中,该神经网络模型可以是自动驾驶领域下的模型,例如用于实现车辆自动驾驶的自动驾驶模型,或者还可以是其他模型,如自动驾驶视觉模型等,对此不再一一穷举。
在本步骤中,可获取目标领域数据集,从该目标领域数据集中抽取测试集,利用该测试集对浮点型神经网络模型进行前向推理,以得到浮点型神经网络模型的输出结果。例如,以浮点型神经网络模型的模型数据(如模型权重和激活层的数据)均为32位浮点数为例,可将测试集输入到浮点型神经网络模型,以得到该模型的输出结果。以图像检测任务场景为例,该输出结果可以为目标检测的位置信息以及类别信息。
在步骤103中,基于浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到指定比特后模型的输出结果。
举例而言,以浮点型神经网络模型的模型数据(如模型权重和激活层的数据)均为32位浮点数为例,假设该浮点型神经网络模型共有4个网络层(如第一层layer_1,第二层layer_2,第三层layer_3,第四层layer_4),指定比特以8比特为例,可以将32位浮点型神经网络模型,从第一层layer_1开始,将第一层layer_1的量化精度调整到8比特,保持其他层(即第二层layer_2,第三层layer_3,第四层layer_4)为32位浮点数不变,从而可以获得第一层layer_1调整到8比特后模型的输出结果。将第二层layer_2的量化精度调整到8比特,保持其他层(即第一层layer_1,第三层layer_3,第四层layer_4)为32位浮点数不变,从而可以获得第二层layer_2调整到8比特后模型的输出结果。将第三层layer_3的量化精度调整到8比特,保持其他层(即第一层layer_1,第二层layer_2,第四层layer_4)为32位浮点数不变,从而可以获得第三层layer_3调整到8比特后模型的输出结果。将第四层layer_4的量化精度调整到8比特,保持其他层(即第一层layer_1,第二层layer_2,第三层layer_3)为32位浮点数不变,从而可以获得第四层layer_4调整到8比特后模型的输出结果。
在步骤104中,根据浮点型神经网络模型的输出结果和各层调整到指定比特量化对应的模型输出结果,确定浮点型神经网络模型中不同层对指定比特量化的敏感度。
在一种实现方式中,将各层调整到指定比特量化对应的模型输出结果与上述浮点型神经网络模型的输出结果进行比较,以确定出浮点型神经网络模型中不同层对指定比特量化的敏感度。
也就是说,可以分别将浮点型神经网络模型中某一层量化精度调整为指定比特,其余层保持浮点数不变,将某一层调整到指定比特量化对应的模型输出结果与所有网络层为32位浮点数的浮点型神经网络模型的输出结果进行比较,以确定出浮点型神经网络模型中不同层对指定比特量化的敏感程度。
在步骤105中,根据浮点型神经网络模型中不同层对指定比特量化的敏感度,对浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型。其中,定点型神经网络模型之中所有层的精度均为指定比特。
在一种实现方式中,可以根据浮点型神经网络模型中不同层对指定比特量化的敏感度,采用不同量化方法对浮点型神经网络模型中各层进行渐进式量化,以最终得到定点型神经网络模型。
在另一种实现方式中,可以根据浮点型神经网络模型中不同层对指定比特量化的敏感度,对模型中的网络层进行量化敏感度的排序,对于非量化敏感层统一采用一种量化方法,对于量化敏感层采用不同的量化方法进行渐进式量化。可以理解,该最终得到的定点型神经网络模型之中所有层的精度均为指定比特。也就是说,本申请最终得到的量化后的模型中每一层所选用的量化方法可能都不一样。
通过实施本申请实施例,可以对训练好的浮点型神经网络模型进行训练后量化,使得量化后的模型适用于嵌入式设备上,并且可以解决相关技术中训练后量化过程中精度损失比较大的问题。另外,通过浮点型神经网络模型中不同层对指定比特量化的敏感度,对浮点型神经网络模型进行渐进式量化,使得神经网模型中的所有网络层精度调整为指定比特,提升精度的同时不影响推理速度,适合于神经网络模型定点量化加速领域。
图2为本申请实施例所提供的另一种神经网络模型的量化方法的流程图。如图2所示,该神经网络模型的量化方法可以包括但不限于如下步骤。
在步骤201中,获取浮点型神经网络模型;其中,浮点型神经网络模型为经过训练后的模型。
在本申请的实施例中,步骤201可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。
在步骤202中,采用多种量化方法和指定比特的定点数对浮点型神经网络模型之中所有层进行定点量化,得到多个量化结果。
在一种实现方式中,可分别采用多种不同量化方法,采用对称量化类型将浮点型神经网络模型之中所有层的量化精度调整为指定比特,得到多种不同量化方法下的量化结果。例如,以多种不同量化方法为第一量化方法、第二量化方法为例,可采用第一量化方法将浮点型神经网络模型之中所有层的量化精度调整为指定比特,得到第一量化方法的量化结果,并采用第二量化方法将浮点型神经网络模型之中所有层的量化精度调整为指定比特,得到第二量化方法的量化结果。
在本申请的一些实施例中,该多种量化方法包括以下至少两种:minMax(最大最小值)量化方法,KLD(Kullback-Leibler divergense,KL散度)量化方法,百分比(percentile)量化方法,MSE(Mean squared error,均方误差),L2-norm(L2范数)等。其中,百分比量化方法可以是直接选择整个数据元素排序后的99.9%或99.99%等比例元素作为阈值。
在步骤203中,基于多个量化结果,从多种量化方法中获取第一目标量化方法。
在一种实现方式中,可以从多种不同量化方法中选取出量化结果最好的量化方法,将选取到的量化结果最好的量化方法确定该第一目标量化方法。可以判断该第一目标量化方法对应的量化结果是否满足预设的精度要求,若满足预设的精度要求,则执行步骤204;若未满足预设的精度要求,则执行步骤205。
在步骤204中,响应于第一目标量化方法对应的量化结果满足预设的精度要求,采用第一目标量化方法对浮点型神经网络模型进行定点量化,以得到定点型神经网络模型。
其中,该精度可以理解为模型输出结果的精度,即指模型检测的准确率。作为一种示例,以自动驾驶领域中图像目标检测为例,该精度可通过模型输出的目标识别位置和/或目标类别表示,通过计算模型输出的目标识别位置和/或目标类别的损失来确定该模型的精度。
在一种实现方式中,在第一目标量化方法对应的量化结果满足预设的精度要求时,可以采用第一目标量化方法对浮点型神经网络模型进行定点量化,将得到的模型作为量化后的模型,可以将该量化后的模型部署到嵌入式设备上。
在步骤205中,响应于第一目标量化方法对应的量化结果未满足精度要求,将目标领域数据集中的测试集输入至浮点型神经网络模型,获得浮点型神经网络模型的输出结果。
在一种实现方式中,在第一目标量化方法对应的量化结果未满足精度要求时,可以将目标领域数据集中的测试集输入至浮点型神经网络模型,获得浮点型神经网络模型的输出结果,以便后续根据浮点型神经网络模型的输出结果对模型中量化敏感层和非量化敏感层采用各自不同的量化方法进行渐进式量化。
在步骤206中,基于浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到指定比特后模型的输出结果。
在本申请的实施例中,步骤206可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。
在步骤207中,根据浮点型神经网络模型的输出结果和各层调整到指定比特量化对应的模型输出结果,确定浮点型神经网络模型中不同层对指定比特量化的敏感度。
在一种实现方式中,根据浮点型神经网络模型的输出结果和各层调整到指定比特量化对应的模型输出结果,确定各层调整到指定比特量化对应的模型输出精度损失,并根据各层调整到指定比特量化对应的模型输出精度损失,确定浮点型神经网络模型中不同层对指定比特量化的敏感度。
在步骤208中,根据浮点型神经网络模型中不同层对指定比特量化的敏感度,对浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型。其中,在一些实施例中,定点型神经网络模型之中所有层的精度均为指定比特。
在本申请的实施例中,步骤208可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述.
通过实施本申请实施例,可以先采用多种不同量化方法作用于浮点型神经网络模型中的所有层,以得到多种不同量化方法下的量化结果,利用这些量化结果选取目标量化方法,在确定该目标量化方法对应的量化结果满足预设的精度要求的情况下,采用该目标量化方法对浮点型神经网络模型进行定点量化,以实现模型量化,从而可以使得量化后的模型满足精度要求。在确定该目标量化方法对应的量化结果不满足预设的精度要求的情况下,利用浮点型神经网络模型中不同层对指定比特量化的敏感度,分别对各层进行渐进式量化,使得神经网模型中的所有网络层精度调整为指定比特,提升精度的同时不影响推理速度,适合于神经网络模型定点量化加速领域。
图3为本申请实施例所提供的又一种神经网络模型的量化方法的流程图。如图3所示,该神经网络模型的量化方法可以包括但不限于如下步骤。
在步骤301中,获取浮点型神经网络模型;其中,浮点型神经网络模型为经过训练后的模型。
在本申请的实施例中,步骤301可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。
在步骤302中,采用多种量化方法和指定比特的定点数对浮点型神经网络模型之中所有层进行定点量化,得到多个量化结果。
在本申请的实施例中,步骤302可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。
在步骤303中,基于多个量化结果,从多种量化方法中获取第一目标量化方法。
在本申请的实施例中,步骤303可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。可以判断该第一目标量化方法对应的量化结果是否满足预设的精度要求,若满足预设的精度要求,则执行步骤304;若未满足预设的精度要求,则执行步骤305。
在步骤304中,响应于第一目标量化方法对应的量化结果满足预设的精度要求,采用第一目标量化方法对浮点型神经网络模型进行定点量化,以得到定点型神经网络模型。
在本申请的实施例中,步骤304可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。
在步骤305中,响应于第一目标量化方法对应的量化结果未满足精度要求,将目标领域数据集中的测试集输入至浮点型神经网络模型,获得浮点型神经网络模型的输出结果。
在本申请的实施例中,步骤305可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。
在步骤306中,基于浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到指定比特后模型的输出结果。
在本申请的实施例中,步骤306可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。
在步骤307中,根据浮点型神经网络模型的输出结果和各层调整到指定比特量化对应的模型输出结果,确定浮点型神经网络模型中不同层对指定比特量化的敏感度。
在本申请的实施例中,步骤307可分别采用本申请的各实施例中的人一种方式实现,本申请实施例并不对此作出限定,也不再赘述。
在步骤308中,根据浮点型神经网络模型中不同层对指定比特量化的敏感度,确定浮点型神经网络模型中的至少一个量化敏感层和至少一个非量化敏感层。
在一种实现方式中,可以将浮点型神经网络模型中不同层对指定比特量化的敏感度与一个敏感度阈值进行大小比较,比如对指定比特量化的敏感度小于该敏感度阈值的网络层,确定为非量化敏感层,将对指定比特量化的敏感度大于或等于该敏感阈值的网络层,确定为量化敏感层。
在另一种实现方式中,根据浮点型神经网络模型中不同层对指定比特量化的敏感度对网络层进行排序,比如敏感度从高到低的排序,将排列在前N个网络层确定为量化敏感层,其他网络层确定为非量化敏感层。其中,该N为正整数,且该N小于或等于浮点型神经网络模型中所有网络层的个数。
在步骤309中,采用第一目标量化方法对浮点型神经网络模型中的至少一个非量化敏感层调整为指定比特量化,得到混合精度神经网络模型。
可以理解,由于第一目标量化方法是从多种量化方法中选取出的量化结果最好的量化方法,所以可以采用该第一目标量化方法对浮点型神经网络模型中的非量化敏感层进行量化,即将这些非量化敏感层调整为指定比特量化,得到混合精度神经网络模型,也就是说,该混合精度神经网络模型是以浮点数和指定比特混合精度构成的模型。
在步骤310中,基于混合精度神经网络模型,采用不同量化方法对至少一个量化敏感层进行渐进式量化,以得到定点型神经网络模型。
在一种实现方式中,针对量化敏感层,可以从校正数据集中选取类别丰富的样本,保存这些量化敏感层的浮点激活值分布,然后,尝试采用多种不同量化方法重新量化每一量化敏感层,得到每一量化敏感层调整到指定比特量化后的激活值分布,利用每一量化敏感层调整到指定比特量化后的激活值分布和每一量化敏感层的浮点激活值分布,固定各量化敏感层的精度损失最少的量化方法,使得最终量化后的模型中每一量化敏感层所选用的量化方法可能都不一样。
在本申请的一些实施例中,如图4所示,上述基于混合精度神经网络模型,采用不同量化方法对至少一个量化敏感层进行渐进式量化,以得到定点型神经网络模型的实现方式可包括以下步骤。
在步骤401中,获取校正数据集,校正数据集中的样本包含需要检测的目标类别,且目标类别的种类大于预设值。
可以理解,选取样本的标准为:样本中必须有需要检测的目标类别,并尽可能多。
在步骤402中,基于校正数据集中的样本对混合精度神经网络模型进行网络推理,得到每个量化敏感层的浮点型输出数据。
在一种实现方式中,将校正数据集中的样本输入至混合精度神经网络模型中以进行前向推理,并保存每个量化敏感层的浮点型输出数据。
例如,以混合精度神经网络模型中包含4个网络层,如第一层layer_1,第二层layer_2,第三层layer_3,第四层layer_4为例,假设第二层layer_2和第三层layer_3为量化敏感层。可以利用校正数据集中的样本对混合精度神经网络模型进行网络推理,并保存第二层layer_2的浮点(如FP32)激活值分布和第三层layer_3的浮点(如FP32)激活值分布。
在步骤403中,基于混合精度神经网络模型,从至少一个量化敏感层之中第一个量化敏感层开始,对当前量化敏感层均采用多种不同量化方法进行多次量化,得到多种不同量化方法下当前量化敏感层调整到指定比特量化对应的输出数据。
需要说明的是,本申请是采用网络输出层的损失来计算量化后的精度损失,也就是说,网络输出层的损失对评估准确性更有用。
在步骤404中,根据多种不同量化方法下当前量化敏感层调整到指定比特量化对应的输出数据,和当前量化敏感层的浮点型输出数据,从多种不同量化方法之中确定出与当前量化敏感层对应的第二目标量化方法。
在步骤405中,基于第二目标量化方法将混合精度神经网络模型之中的当前量化敏感层进行量化,直至所有量化敏感层的量化精度调整为指定比特。
举例而言,以混合精度神经网络模型中包含4个网络层,如第一层layer_1,第二层layer_2,第三层layer_3,第四层layer_4为例,假设第二层layer_2和第三层layer_3为量化敏感层。可以利用校正数据集中的样本对混合精度神经网络模型进行网络推理,并保存第二层layer_2的浮点(如FP32)数据分布和第三层layer_3的浮点(如FP32)数据分布。基于混合精度神经网络模型,从第一个量化敏感层(即第二层layer_2)开始,对第二层layer_2采用多种不同量化方法进行多次量化,测量第二层layer_2每个通道的数据分布(如6个通道),并统计每个通道的数据以作为对应量化方法的指导指标,例如,采用的量化方法为minMax量化方法,则可以统计每个通道的最大值和最小值作为该量化方法的指导指标。
在本申请中,若通道统计量差别比较大,可以选用minMax方法,这里可以尝试不同的量化方法(如max,熵entropy,99.99分位,99.999分位,MSE,KLD)进行量化,(其中,这里对于量化不敏感层,还是按照第一目标量化方法),观察最终模型输出的精度,即将每种量化方法的量化结果与第二层layer_2的浮点(如FP32)数据分布进行精度损失的比较,根据精度损失以选取适合该当前量化敏感层(即第二层layer_2)的一个最好的量化方法,比如选取一个精度损失最少的量化方法作为该当前量化敏感层的量化方法。对于其他量化敏感层(即第三层layer_3)也做类似的操作。这样可以将每一个量化敏感层的量化方法固定下来。由此最终量化后的模型中每一层所选用的量化方法可能都不一样。
进一步的,在本申请的一些实施例中,响应于混合精度神经网络模型的性能未满足预设的性能要求,获取目标领域训练集和浮点型神经网络模型的损失函数;根据目标领域训练集和损失函数,对混合精度神经网络模型进行量化感知训练QAT。
其中,该性能要求可以是基于该神经网络模型欲部署的嵌入式设备的硬件信息而决定的。例如可以基于该神经网络模型欲部署的嵌入式设备的中央处理器CPU、内存等硬件信息,来预先设定与该嵌入式设备匹配的性能要求。需要说明的是,本申请中的性能可理解是指模型检测一帧数据的耗时,耗时大,则性能差。
可选的,在得到混合精度神经网络模型时,可以计算混合精度神经网络模型的性能,比如可以观察该混合精度神经网络模型检测数据的耗时,若该耗时大于一定时长,则确定混合精度神经网络模型的性能未满足预设的性能要求。可以获取目标领域训练集和浮点型神经网络模型的损失函数,利用目标领域训练集和损失函数对混合精度神经网络模型进行量化感知训练QAT,从而可以进一步提升精度。
进一步的,在本申请的一些实施例中,响应于定点型神经网络模型的模型精度未满足预设的精度要求,获取目标领域训练集和浮点型神经网络模型的损失函数;根据目标领域训练集和损失函数,对定点型神经网络模型进行量化感知训练QAT。
也就是说,在对混合精度神经网络模型中对量化敏感层重新进行渐进式量化后,得到的定点型神经网络模型的模型精度未满足预设的精度要求,此时可以获取目标领域训练集和浮点型神经网络模型的损失函数,利用目标领域训练集和损失函数对定点型神经网络模型进行量化感知训练QAT,从而可以进一步提升精度。
通过实施本申请实施例,先对量化敏感层进行排序,然后用不同量化方法自动搜索,最终找到一个比较好的量化范围,全程还是用指定比特(如INT8)精度,可以显著提升指定比特(如INT8)量化过程中产生的精度损失比较大的问题,省时快捷,从而可以使得量化后的模型适用于嵌入式设备上。
在本申请的一些实施例中,如图5所示,以神经网络模型为用于实现车辆自动驾驶的自动驾驶模型为例,该神经网络模型的量化方法可以包括但不限于如下步骤。
在步骤501中,获取浮点型自动驾驶模型。其中,浮点型自动驾驶模型为经过训练后的模型。
在步骤502中,将目标领域数据集中的测试集输入至浮点型自动驾驶模型,获得浮点型自动驾驶模型的输出结果。
在步骤503中,基于浮点型自动驾驶模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到指定比特后模型的输出结果。
在步骤504中,根据浮点型自动驾驶模型的输出结果和各层调整到指定比特量化对应的模型输出结果,确定浮点型自动驾驶模型中不同层对指定比特量化的敏感度。
在步骤505中,根据浮点型自动驾驶模型中不同层对指定比特量化的敏感度,对浮点型自动驾驶模型进行渐进式量化,以得到定点型自动驾驶模型。其中,定点型自动驾驶模型之中所有层的精度均为指定比特。
通过实施本申请实施例,可以对训练好的浮点型自动驾驶模型进行训练后量化,使得量化后的模型适用于嵌入式设备上,并且可以解决相关技术中训练后量化过程中精度损失比较大的问题。另外,通过浮点型自动驾驶模型中不同层对指定比特量化的敏感度,对浮点型自动驾驶模型进行渐进式量化,使得神经网模型中的所有网络层精度调整为指定比特,提升精度的同时不影响推理速度,适合于自动驾驶模型定点量化加速领域。
图6为本申请实施例所提供的一种神经网络模型的量化装置的结构框图。如图6所示,该神经网络模型的量化装置可以包括:第一获取模块601、第二获取模块602、第三获取模块603、确定模块604和第一量化模块605。
其中,第一获取模块601用于获取浮点型神经网络模型;其中,浮点型神经网络模型为经过训练后的模型;
第二获取模块602用于将目标领域数据集中的测试集输入至浮点型神经网络模型,获得浮点型神经网络模型的输出结果;
第三获取模块603用于基于浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到指定比特后模型的输出结果;
确定模块604用于根据浮点型神经网络模型的输出结果和各层调整到指定比特量化对应的模型输出结果,确定浮点型神经网络模型中不同层对指定比特量化的敏感度;
在一种实现方式中,确定模块604根据浮点型神经网络模型的输出结果和各层调整到指定比特量化对应的模型输出结果,确定各层调整到指定比特量化对应的模型输出精度损失;根据各层调整到指定比特量化对应的模型输出精度损失,确定浮点型神经网络模型中不同层对指定比特量化的敏感度。
第一量化模块605用于根据浮点型神经网络模型中不同层对指定比特量化的敏感度,对浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型;其中,定点型神经网络模型之中所有层的精度均为指定比特。
通过实施本申请实施例,可以对训练好的浮点型神经网络模型进行训练后量化,使得量化后的模型适用于嵌入式设备上,并且可以解决相关技术中训练后量化过程中精度损失比较大的问题。另外,通过浮点型神经网络模型中不同层对指定比特量化的敏感度,对浮点型神经网络模型进行渐进式量化,使得神经网模型中的所有网络层精度调整为指定比特,提升精度的同时不影响推理速度,适合于神经网络模型定点量化加速领域。
在本申请的一些实施例中,如图7所示,该量化装置还可包括:第二量化模块706、第四获取模块707和第三量化模块708。其中,第二量化模块706用于采用多种量化方法和指定比特的定点数对浮点型神经网络模型之中所有层进行定点量化,得到多个量化结果。第四获取模块707用于基于多个量化结果,从多种量化方法中获取第一目标量化方法。第三量化模块708用于响应于第一目标量化方法对应的量化结果满足预设的精度要求,采用第一目标量化方法对浮点型神经网络模型进行定点量化,以得到定点型神经网络模型。
在一种实现方式中,第二获取模块702还用于在第一目标量化方法对应的量化结果未满足精度要求时,执行将目标领域数据集中的测试集输入至浮点型神经网络模型,获得浮点型神经网络模型的输出结果的步骤。
在一种实现方式中,如图7所示,该第一量化模块705可以包括:确定单元7051、第一量化单元7052和第二量化单元7053。其中,确定单元7051用于根据浮点型神经网络模型中不同层对指定比特量化的敏感度,确定浮点型神经网络模型中的至少一个量化敏感层和至少一个非量化敏感层;第一量化单元7052用于采用第一目标量化方法对浮点型神经网络模型中的至少一个非量化敏感层调整为指定比特量化,得到混合精度神经网络模型;第二量化单元7053用于基于混合精度神经网络模型,采用不同量化方法对至少一个量化敏感层进行渐进式量化,以得到定点型神经网络模型。
在一种可能的实现方式中,第二量化单元7053具体用于:获取校正数据集,校正数据集中的样本包含需要检测的目标类别,且目标类别的种类大于预设值;基于校正数据集中的样本对混合精度神经网络模型进行网络推理,得到每个量化敏感层的浮点型输出数据;基于混合精度神经网络模型,从至少一个量化敏感层之中第一个量化敏感层开始,对当前量化敏感层均采用多种不同量化方法进行多次量化,得到多种不同量化方法下当前量化敏感层调整到指定比特量化对应的输出数据;根据多种不同量化方法下当前量化敏感层调整到指定比特量化对应的输出数据,和当前量化敏感层的浮点型输出数据,从多种不同量化方法之中确定出与当前量化敏感层对应的第二目标量化方法;基于第二目标量化方法将混合精度神经网络模型之中的当前量化敏感层进行量化,直至所有量化敏感层的量化精度调整为指定比特。其中,图7中701-705和图6中601-605具有相同功能和结构
在本申请的一些实施例中,如图8所示,该量化装置还可包括:第五获取模块809和量化感知训练模块810。其中,第五获取模块809用于响应于混合精度神经网络模型的性能未满足预设的性能要求,获取目标领域训练集和浮点型神经网络模型的损失函数;量化感知训练模块810用于根据目标领域训练集和损失函数,对混合精度神经网络模型进行量化感知训练QAT。
在本申请的一些实施例中,第五获取模块809还用于响应于定点型神经网络模型的模型精度未满足预设的精度要求,获取目标领域训练集和浮点型神经网络模型的损失函数;量化感知训练模块810还用于根据目标领域训练集和损失函数,对定点型神经网络模型进行量化感知训练QAT。其中,图8中801-808和图7中701-708具有相同功能和结构。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图9所示,是用以实现本申请实施例的神经网络模型的量化方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器***)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的神经网络模型的量化方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的神经网络模型的量化方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的神经网络模型的量化方法对应的程序指令/模块。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的神经网络模型的量化方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需要的应用程序;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (16)
1.一种神经网络模型的量化方法,包括:
获取浮点型神经网络模型;其中,所述浮点型神经网络模型为经过训练后的模型,所述浮点型神经网络模型是采用自动驾驶训练数据经过训练后的自动驾驶模型;
将自动驾驶数据集中的测试集输入至所述浮点型神经网络模型,获得所述浮点型神经网络模型的输出结果;
基于所述浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到所述指定比特后模型的输出结果;
根据所述浮点型神经网络模型的输出结果和各层调整到所述指定比特量化对应的模型输出结果,确定所述浮点型神经网络模型中不同层对指定比特量化的敏感度;
根据所述浮点型神经网络模型中不同层对指定比特量化的敏感度,对所述浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型;其中,所述定点型神经网络模型之中所有层的精度均为所述指定比特;
其中,所述根据所述浮点型神经网络模型中不同层对指定比特量化的敏感度,对所述浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型,包括:
根据所述浮点型神经网络模型中不同层对指定比特量化的敏感度,确定所述浮点型神经网络模型中的至少一个量化敏感层和至少一个非量化敏感层;
采用第一目标量化方法对所述浮点型神经网络模型中的所述至少一个非量化敏感层调整为所述指定比特量化,得到混合精度神经网络模型;
基于所述混合精度神经网络模型,采用不同量化方法对所述至少一个量化敏感层进行渐进式量化,以得到所述定点型神经网络模型。
2.如权利要求1所述的方法,其中,所述根据所述浮点型神经网络模型的输出结果和各层调整到所述指定比特量化对应的模型输出结果,确定所述浮点型神经网络模型中不同层对指定比特量化的敏感度,包括:
根据所述浮点型神经网络模型的输出结果和各层调整到所述指定比特量化对应的模型输出结果,确定各层调整到所述指定比特量化对应的模型输出精度损失;
根据各层调整到所述指定比特量化对应的模型输出精度损失,确定所述浮点型神经网络模型中不同层对指定比特量化的敏感度。
3.如权利要求1或2所述的方法,还包括:
采用多种量化方法和所述指定比特的定点数对所述浮点型神经网络模型之中所有层进行定点量化,得到多个量化结果;
基于所述多个量化结果,从所述多种量化方法中获取第一目标量化方法;
响应于所述第一目标量化方法对应的量化结果满足预设的精度要求,采用所述第一目标量化方法对所述浮点型神经网络模型进行定点量化,以得到所述定点型神经网络模型。
4.如权利要求3所述的方法,还包括:
响应于所述第一目标量化方法对应的量化结果未满足所述精度要求,执行所述将自动驾驶数据集中的测试集输入至所述浮点型神经网络模型,获得所述浮点型神经网络模型的输出结果的步骤。
5.如权利要求1所述的方法,其中,所述基于所述混合精度神经网络模型,采用不同量化方法对所述至少一个量化敏感层进行渐进式量化,包括:
获取校正数据集,所述校正数据集中的样本包含需要检测的目标类别,且所述目标类别的种类大于预设值;
基于所述校正数据集中的样本对所述混合精度神经网络模型进行网络推理,得到每个所述量化敏感层的浮点型输出数据;
基于所述混合精度神经网络模型,从所述至少一个量化敏感层之中第一个量化敏感层开始,对当前量化敏感层均采用多种不同量化方法进行多次量化,得到所述多种不同量化方法下所述当前量化敏感层调整到所述指定比特量化对应的输出数据;
根据所述多种不同量化方法下所述当前量化敏感层调整到所述指定比特量化对应的输出数据,和所述当前量化敏感层的浮点型输出数据,从所述多种不同量化方法之中确定出与所述当前量化敏感层对应的第二目标量化方法;
基于所述第二目标量化方法将所述混合精度神经网络模型之中的所述当前量化敏感层进行量化,直至所有所述量化敏感层的量化精度调整为所述指定比特。
6.如权利要求1或5所述的方法,还包括:
响应于所述混合精度神经网络模型的性能未满足预设的性能要求,获取自动驾驶训练集和所述浮点型神经网络模型的损失函数;
根据所述自动驾驶训练集和所述损失函数,对所述混合精度神经网络模型进行量化感知训练QAT。
7.如权利要求1所述的方法,还包括:
响应于所述定点型神经网络模型的模型精度未满足预设的精度要求,获取自动驾驶训练集和所述浮点型神经网络模型的损失函数;
根据所述自动驾驶训练集和所述损失函数,对所述定点型神经网络模型进行量化感知训练QAT。
8.一种神经网络模型的量化装置,包括:
第一获取模块,用于获取浮点型神经网络模型;其中,所述浮点型神经网络模型为经过训练后的模型,所述浮点型神经网络模型是采用自动驾驶训练数据经过训练后的自动驾驶模型;
第二获取模块,用于将自动驾驶数据集中的测试集输入至所述浮点型神经网络模型,获得所述浮点型神经网络模型的输出结果;
第三获取模块,用于基于所述浮点型神经网络模型,从第一层开始依次将每一层的量化精度调整到指定比特,保持其他层为浮点格式不变,获得每一层调整到所述指定比特后模型的输出结果;
确定模块,用于根据所述浮点型神经网络模型的输出结果和各层调整到所述指定比特量化对应的模型输出结果,确定所述浮点型神经网络模型中不同层对指定比特量化的敏感度;
第一量化模块,用于根据所述浮点型神经网络模型中不同层对指定比特量化的敏感度,对所述浮点型神经网络模型进行渐进式量化,以得到定点型神经网络模型;其中,所述定点型神经网络模型之中所有层的精度均为所述指定比特;
其中,所述第一量化模块包括:
确定单元,用于根据所述浮点型神经网络模型中不同层对指定比特量化的敏感度,确定所述浮点型神经网络模型中的至少一个量化敏感层和至少一个非量化敏感层;
第一量化单元,用于采用第一目标量化方法对所述浮点型神经网络模型中的所述至少一个非量化敏感层调整为所述指定比特量化,得到混合精度神经网络模型;
第二量化单元,用于基于所述混合精度神经网络模型,采用不同量化方法对所述至少一个量化敏感层进行渐进式量化,以得到所述定点型神经网络模型。
9.如权利要求8所述的装置,其中,所述确定模块具体用于:
根据所述浮点型神经网络模型的输出结果和各层调整到所述指定比特量化对应的模型输出结果,确定各层调整到所述指定比特量化对应的模型输出精度损失;
根据各层调整到所述指定比特量化对应的模型输出精度损失,确定所述浮点型神经网络模型中不同层对指定比特量化的敏感度。
10.如权利要求8或9所述的装置,还包括:
第二量化模块,用于采用多种量化方法和所述指定比特的定点数对所述浮点型神经网络模型之中所有层进行定点量化,得到多个量化结果;
第四获取模块,用于基于所述多个量化结果,从所述多种量化方法中获取第一目标量化方法;
第三量化模块,用于响应于所述第一目标量化方法对应的量化结果满足预设的精度要求,采用所述第一目标量化方法对所述浮点型神经网络模型进行定点量化,以得到所述定点型神经网络模型。
11.如权利要求10所述的装置,其中,所述第二获取模块还用于在所述第一目标量化方法对应的量化结果未满足所述精度要求时,执行所述将自动驾驶数据集中的测试集输入至所述浮点型神经网络模型,获得所述浮点型神经网络模型的输出结果的步骤。
12.如权利要求8所述的装置,其中,所述第二量化单元具体用于:
获取校正数据集,所述校正数据集中的样本包含需要检测的目标类别,且所述目标类别的种类大于预设值;
基于所述校正数据集中的样本对所述混合精度神经网络模型进行网络推理,得到每个所述量化敏感层的浮点型输出数据;
基于所述混合精度神经网络模型,从所述至少一个量化敏感层之中第一个量化敏感层开始,对当前量化敏感层均采用多种不同量化方法进行多次量化,得到所述多种不同量化方法下所述当前量化敏感层调整到所述指定比特量化对应的输出数据;
根据所述多种不同量化方法下所述当前量化敏感层调整到所述指定比特量化对应的输出数据,和所述当前量化敏感层的浮点型输出数据,从所述多种不同量化方法之中确定出与所述当前量化敏感层对应的第二目标量化方法;
基于所述第二目标量化方法将所述混合精度神经网络模型之中的所述当前量化敏感层进行量化,直至所有所述量化敏感层的量化精度调整为所述指定比特。
13.如权利要求8或12所述的装置,还包括:
第五获取模块,用于响应于所述混合精度神经网络模型的性能未满足预设的性能要求,获取自动驾驶训练集和所述浮点型神经网络模型的损失函数;
量化感知训练模块,用于根据所述自动驾驶训练集和所述损失函数,对所述混合精度神经网络模型进行量化感知训练QAT。
14.如权利要求13所述的装置,其中,
所述第五获取模块还用于响应于所述定点型神经网络模型的模型精度未满足预设的精度要求,获取自动驾驶训练集和所述浮点型神经网络模型的损失函数;
所述量化感知训练模块还用于根据所述自动驾驶训练集和所述损失函数,对所述定点型神经网络模型进行量化感知训练QAT。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1至7中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611599.7A CN114861886B (zh) | 2022-05-30 | 2022-05-30 | 神经网络模型的量化方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210611599.7A CN114861886B (zh) | 2022-05-30 | 2022-05-30 | 神经网络模型的量化方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114861886A CN114861886A (zh) | 2022-08-05 |
CN114861886B true CN114861886B (zh) | 2023-03-10 |
Family
ID=82640590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210611599.7A Active CN114861886B (zh) | 2022-05-30 | 2022-05-30 | 神经网络模型的量化方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114861886B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117648964A (zh) * | 2022-08-30 | 2024-03-05 | 华为技术有限公司 | 模型压缩方法、装置以及相关设备 |
CN116189667B (zh) * | 2023-04-27 | 2023-08-01 | 摩尔线程智能科技(北京)有限责任公司 | 语音处理模型的量化压缩方法、装置、设备和存储介质 |
CN116611493B (zh) * | 2023-05-16 | 2024-06-07 | 上海交通大学 | 基于贪心式搜索的硬件感知混合精度量化方法及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112766456A (zh) * | 2020-12-31 | 2021-05-07 | 平安科技(深圳)有限公司 | 浮点型深度神经网络的量化方法、装置、设备及存储介质 |
CN113222148A (zh) * | 2021-05-20 | 2021-08-06 | 浙江大学 | 一种面向物料识别的神经网络推理加速方法 |
CN113449854A (zh) * | 2021-08-30 | 2021-09-28 | 阿里云计算有限公司 | 网络模型的混合精度量化方法、设备及计算机存储介质 |
CN114444668A (zh) * | 2021-12-20 | 2022-05-06 | 成都数联云算科技有限公司 | 网络量化方法及***及装置及介质及图像处理方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113487014B (zh) * | 2021-07-05 | 2022-08-05 | 上海西井信息科技有限公司 | 基于语义分割神经网络模型的任意比特量化方法及设备 |
CN114282670A (zh) * | 2022-01-14 | 2022-04-05 | 北京百度网讯科技有限公司 | 神经网络模型的压缩方法、设备和存储介质 |
-
2022
- 2022-05-30 CN CN202210611599.7A patent/CN114861886B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112766456A (zh) * | 2020-12-31 | 2021-05-07 | 平安科技(深圳)有限公司 | 浮点型深度神经网络的量化方法、装置、设备及存储介质 |
CN113222148A (zh) * | 2021-05-20 | 2021-08-06 | 浙江大学 | 一种面向物料识别的神经网络推理加速方法 |
CN113449854A (zh) * | 2021-08-30 | 2021-09-28 | 阿里云计算有限公司 | 网络模型的混合精度量化方法、设备及计算机存储介质 |
CN114444668A (zh) * | 2021-12-20 | 2022-05-06 | 成都数联云算科技有限公司 | 网络量化方法及***及装置及介质及图像处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114861886A (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114861886B (zh) | 神经网络模型的量化方法及其装置 | |
CN112525551B (zh) | 自动驾驶车辆的路测方法、装置、设备及存储介质 | |
KR102528748B1 (ko) | 지식 그래프를 구축하는 방법, 장치, 기기 및 저장 매체 | |
CN111667054A (zh) | 生成神经网络模型的方法、装置、电子设备以及存储介质 | |
CN111783451A (zh) | 用于增强文本样本的方法和装置 | |
CN111753914A (zh) | 模型优化方法和装置、电子设备及存储介质 | |
CN111143564B (zh) | 无监督的多目标篇章级情感分类模型训练方法和装置 | |
CN113379059B (zh) | 用于量子数据分类的模型训练方法以及量子数据分类方法 | |
CN111582479A (zh) | 神经网络模型的蒸馏方法和装置 | |
CN111667056A (zh) | 用于搜索模型结构的方法和装置 | |
CN114282670A (zh) | 神经网络模型的压缩方法、设备和存储介质 | |
CN111078878A (zh) | 文本处理方法、装置、设备及计算机可读存储介质 | |
CN111563593A (zh) | 神经网络模型的训练方法和装置 | |
CN112329453B (zh) | 样本章节的生成方法、装置、设备以及存储介质 | |
CN112149829A (zh) | 确定网络模型剪枝策略的方法、装置、设备以及存储介质 | |
CN112380392A (zh) | 用于分类视频的方法、装置、电子设备及可读存储介质 | |
CN111563592A (zh) | 基于超网络的神经网络模型生成方法和装置 | |
CN112561056A (zh) | 神经网络模型的训练方法、装置、电子设备和存储介质 | |
CN114417194A (zh) | 推荐***排序方法、参数预测模型训练方法及装置 | |
CN112149266A (zh) | 确定网络模型量化策略的方法、装置、设备以及存储介质 | |
CN113157829A (zh) | 一种兴趣点名称比对方法、装置、电子设备和存储介质 | |
CN112232089B (zh) | 语义表示模型的预训练方法、设备和存储介质 | |
CN112597288B (zh) | 人机交互方法、装置、设备及存储介质 | |
EP3855341A1 (en) | Language generation method and apparatus, electronic device and storage medium | |
CN113420792A (zh) | 图像模型的训练方法、电子设备、路侧设备及云控平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |