首页> 中国专利> 用于深度神经网络的混合精度量化策略确定方法和系统

用于深度神经网络的混合精度量化策略确定方法和系统

摘要

本发明涉及深度神经网络的量化推理,具体提供一种用于深度神经网络的混合精度量化策略确定方法和系统,旨在解决现有方法不能针对特定神经网络模型准确地自动筛选出最佳混合精度量化策略的问题。为此目的,本发明的方法包括:设定深度神经网络的推理精度阈值和推理时间阈值;确定硬件能够支持的多个不同的量化精度;用每一种量化精度迭代所有层并记录每次迭代的实际推理精度和实际推理时间,针对每一层筛选出实际推理精度大于推理精度阈值且实际推理时间小于推理时间阈值的所有量化精度;将筛选出的量化精度的组合中的一个确定为最终的混合精度量化策略。使用本发明的方法可以简单快速地完成最佳量化策略的搜索,极大地减少人力和降低时间成本。

著录项

  • 公开/公告号CN112906883A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 云从科技集团股份有限公司;

    申请/专利号CN202110158390.5

  • 发明设计人 王浩然;梁俊文;

    申请日2021-02-04

  • 分类号G06N3/08(20060101);G06N3/04(20060101);

  • 代理机构11482 北京瀚仁知识产权代理事务所(普通合伙);

  • 代理人宋宝库;郭婷

  • 地址 511457 广东省广州市南沙区南沙街金隆路37号501房

  • 入库时间 2023-06-19 11:14:36

说明书

技术领域

本发明涉及深度神经网络的量化推理,具体提供一种用于深度神经网络的混合精度量化策略确定方法和系统。

背景技术

人工神经网络(Artificial Neural Network,ANN)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的,并具有自学习和自适应的能力。深度神经网络(Deep Neural Network,DNN)是指内部包含多个层的神经网络,其是机器学习(ML,Machine Learning)领域中的一种重要技术。

与深度神经网络相关的操作包括训练、推理和量化。训练是指向深度神经网络中输入足够多的样本,通过一定算法来调整网络结构(主要是调节权值),使深度神经网络的输出与预期值相符。推理是指将一个预先训练好的深度神经网络模型部署到实际业务场景中,如图像分类、物体检测、在线翻译等。由于推理直接面向用户,因此,推理性能至关重要,尤其对于企业级产品而言更是如此。为此,通过压缩模型尺寸来提高运算速度就变成一种实际的需求,而量化就是一种典型的模型压缩方法,其是通过将浮点参数转化为定点参数来降低运算精度并因此压缩模型和提升运算速度。

在现有的深度神经网络的训练和推理过程中,普遍使用较高精度(如32bit双精度,16bit单精度)进行推理。但是,在实际场景应用中,往往对神经网络的推理速度有较高的要求。由于终端设备的算力限制,为了实现低功耗低延迟,常常使用更低的精度(8bit或更小)进行推理。然而,在神经网络的推理过程中使用较低精度进行推理会导致较高的精度损失,从而导致较大的结果误差,导致神经网络的精度下降。

为了解决上述问题,现有技术中已经出现了通过混合精度来量化神经网络的方法,即,筛选出神经网络中个别导致精度下降的层,单独提高这些层的推理精度,而对其他层依然使用低精度的算法进行推理。然而,在实际的神经网络中,由于同一层内或不同层之间的计算的相互影响和关联,很难通过经验确定最佳的混合精度最优策略,即,很难精准地筛选出精度下降的层和对精度下降的层选择合适的量化精度。

为此,中国专利申请CN112183742A公开了一种基于渐进式量化和Hessian信息的神经网络混合量化方法,该方法的步骤包括:给定图像标签对集合,划分样本集和校准集;定义神经网络每层可选的量化精度范围;随机选择量化层做降bit量化,重复采样n次,得到n个基础的混合精度模型;以校准集中的图像标签对作为输入,对所有候选的混合精度神经网络模型进行一次前向过程;利用Adam二阶Momentum信息计算Hessian近似值;再计算性能评价指标,将n个指标排序,选择最小值对应混合精度策略作为当前步次下性能最好的混合精度组合,计算模型的计算成本,再对当前的混合精度网络模型做训练;迭代至满足结束条件。上述方法虽然摆脱了对人工经验的依赖,但是,其在对每个网络层进行量化时采用了随机采样的方式,并且用随机采样的量化结果直接被用于构建混合精度模型,使得后续通过性能评价指标选定的精度组合未必能准确对应于整个网络模型的最佳精度和运算速度。

因此,本领域仍然需要一种新的方法来解决混合精度量化策略的自动筛选和确定问题。

发明内容

为了解决现有技术中的上述问题,即,为了解决现有方法不能针对特定神经网络模型准确地自动筛选出最佳混合精度量化策略的问题,本发明提供了一种用于深度神经网络的混合精度量化策略确定方法,其特征在于,所述方法包括下列步骤:设定所述深度神经网络的推理精度阈值和推理时间阈值;确定运行所述深度神经网络的硬件能够支持的多个不同的量化精度;在将测试数据输入所述深度神经网络进行推理的过程中,用每一种量化精度迭代所述深度神经网络的所有层并记录每次迭代时所述深度神经网络的实际推理精度和实际推理时间,针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略。

在上述用于深度神经网络的混合精度量化策略确定方法的优选实施方式中,“用每一种量化精度迭代所述深度神经网络的所有层”的步骤具体包括:在用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的每一层分别进行推理。

在上述用于深度神经网络的混合精度量化策略确定方法的优选实施方式中,“用每一种量化精度迭代所述深度神经网络的所有层并记录每次迭代时所述深度神经网络的实际推理精度和实际推理时间,针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度”的步骤具体包括:在用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的第一层分别进行推理,并记录每次推理的实际推理精度和实际推理时间;针对第一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;在将第一层的量化精度固定为筛选出的最低量化精度并用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的第二层进行推理,并记录每次推理的实际推理精度和实际推理时间;针对第二层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;以此类推,迭代所述深度神经网络的所有层,最终针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度。

在上述用于深度神经网络的混合精度量化策略确定方法的优选实施方式中,“将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略”的步骤具体包括:用针对所有层筛选出的量化精度的多个不同组合中的每一个分别对所述深度神经网络进行推理,并记录每次推理的实际推理精度和实际推理时间;筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的一个或多个组合,作为所述混合精度量化策略。

在上述用于深度神经网络的混合精度量化策略确定方法的优选实施方式中,当筛选出的组合为一个时,将筛选出的一个组合直接作为所述混合精度量化策略;并且/或者当筛选出的组合为多个时,将筛选出的多个组合中选定一个作为所述混合精度量化策略。

在另一个方面,本发明还提供了一种用于深度神经网络的混合精度量化策略确定系统,其特征在于,所述系统包括:阈值设定模块,其用于设定所述深度神经网络的推理精度阈值和推理时间阈值;量化精度确定模块,其用于确定运行所述深度神经网络的硬件能够支持的多个不同的量化精度;混合精度策略确定模块,其在将测试数据输入所述深度神经网络进行推理的过程中,用每一种量化精度迭代所述深度神经网络的所有层并记录每次迭代时所述深度神经网络的实际推理精度和实际推理时间,针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度,并将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略。

在上述用于深度神经网络的混合精度量化策略确定系统的优选实施方式中,在用每一种量化精度迭代所述深度神经网络的所有层时,所述混合精度策略确定模块具体执行下列操作:在用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的每一层分别进行推理。

在上述用于深度神经网络的混合精度量化策略确定系统的优选实施方式中,所述混合精度策略确定模块具体执行下列操作:在用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的第一层分别进行推理,并记录每次推理的实际推理精度和实际推理时间;针对第一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;在将第一层的量化精度固定为筛选出的最低量化精度并用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的第二层进行推理,并记录每次推理的实际推理精度和实际推理时间;针对第二层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;以此类推,迭代所述深度神经网络的所有层,最终针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度,并将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略。

在上述用于深度神经网络的混合精度量化策略确定系统的优选实施方式中,在将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略时,所述混合精度策略确定模块具体执行下列操作:用所述多个不同组合中的每一个分别对所述深度神经网络进行推理,并记录每次推理的实际推理精度和实际推理时间;筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的一个或多个组合,作为所述混合精度量化策略。

在上述用于深度神经网络的混合精度量化策略确定系统的优选实施方式中,当筛选出的组合为一个时,所述混合精度策略确定模块将筛选出的一个组合直接作为所述混合精度量化策略;并且/或者当筛选出的组合为多个时,所述混合精度策略确定模块根据用户的选择将筛选出的多个组合中选定一个作为所述混合精度量化策略。

在又一个方面,本发明还提供了一种计算机可读存储介质,其特征在于,所述存储介质中存储有多条程序代码,所述程序代码适用于由处理器加载并运行以执行上述任一段所述的用于深度神经网络的混合精度量化策略确定方法。

在又一个方面,本发明还提供了一种控制装置,该控制装置包括处理器和存储装置,所述存储装置中存储有多条程序代码,其特征在于,所述程序代码适于由所述处理器加载并运行以执行上述任一段所述的用于深度神经网络的混合精度量化策略确定方法。

本领域技术人员能够理解的是,在采用上述技术方案的情况下,本发明能够获得如下技术效果:1.获得最佳的混合精度量化策略,即,通过本发明的技术方案,最终可以获得保证神经网络推理精度的前提下,最优的推理速度和最低的功耗。2.节省人力成本和时间成本,传统的手动尝试方式会消耗大量的人力和时间,并且难以获得最佳的混合精度策略,使用本方案可以全自动化地完成最佳策略搜索,极大地减少人力和降低时间成本。3.可以适配不同的应用场景,不同的芯片可以使用的推理精度不同,即便两种设备都支持同一种低精度运算,也可能具有不同水平的加速比。例如,NVIDIA-TESLA P4的8bit精度相对于16bit精度可以获得的加速比,与NVIDIA-TESLA-T4的8bit精度相对于16bit精度可以获得的加速比并不相同。因此,在某一场景和设备上最优的方案在另一场景中并不是最优的方案,但是,使用本方案可以在某个特定场景下获得定制的最优混合精度策略。

附图说明

下面结合附图来描述本发明的优选实施方式,附图中:

图1为根据本发明的用于深度神经网络的混合精度量化策略确定方法的主要步骤流程图;

图2为根据本发明一个实施例的用于深度神经网络的混合精度量化策略确定方法的迭代过程的详细步骤流程图;

图3为根据本发明另一个实施例的用于深度神经网络的混合精度量化策略确定方法的迭代过程的详细步骤流程图;

图4为根据本发明的用于深度神经网络的混合精度量化策略确定方法的最终策略确定过程的详细步骤流程图。

具体实施方式

为了便于理解本发明,下文将结合说明书附图和实施例对本发明作更全面、细致的描述,但本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。

在本发明的描述中,“模块”、“处理器”可以包括硬件、软件或者两者的组合。一个模块可以包括硬件电路、各种合适的感应器、通信端口、存储器,也可以包括软件部分,比如程序代码,也可以是软件和硬件的组合。处理器可以是中央处理器、微处理器、图像处理器、数字信号处理器或者其他任何合适的处理器。处理器具有数据和/或信号处理功能。处理器可以以软件方式实现、硬件方式实现或者二者结合的方式实现。非暂时性的计算机可读存储介质包括任何合适的可存储程序代码的介质,比如磁碟、硬盘、光碟、闪存、只读存储器、随机存取存储器等等。术语“A和/或B”表示所有可能的A与B的组合,比如只是A、只是B或者A和B。术语“至少一个A或B”或者“A和B中的至少一个”含义与“A和/或B”类似,可以包括只是A、只是B或者A和B。单数形式的术语“一个”、“这个”也可以包含复数形式。

首先参阅图1,本发明的用于深度神经网络的混合精度量化策略确定方法主要包括下列步骤:

S1,设定所述深度神经网络的推理精度阈值和推理时间阈值;

S2,确定运行所述深度神经网络的硬件能够支持的多个不同的量化精度;

S3,在将测试数据输入所述深度神经网络进行推理的过程中,用每一种量化精度迭代所述深度神经网络的所有层并记录每次迭代时所述深度神经网络的实际推理精度和实际推理时间,针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;

S4,将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略。

关于上述方法,需要说明的是,本发明的方法用于确定混合精度量化场景下神经网络不同层的量化精度组合,不涉及具体量化算法和量化参数(例如权值、激活值、特征图等),在不偏离本发明的基本原理的情况下,本领域技术人员可以采用任何合适的量化算法,也可以对神经网络的任何参数进行量化。

其次,由于本发明的技术方案适用于任何隐藏层大于2的神经网络,因此,本申请中的术语“深度神经网络”应该作广义理解,即,其包括隐藏层大于2的所有神经网络。

在步骤S1中,设定所述深度神经网络的推理精度阈值和推理时间阈值既可以由技术人员根据特定应用场景的需求并结合经验来进行,也可以采用现场验证的方式进行。具体来说,可以用硬件能够支持的最高精度来做一次推理,记录所述推理的输出精度和运算时间,然后根据该输出精度和运算时间来设定推理精度阈值和推理时间阈值。通常来说,如果以最高精度进行推理,输出精度通常是最高的,但运算时间是最长的,此时可以在该最高精度的基础上下降一定幅度来确定推理精度阈值,即可接受的最低精度值。相应地,可以把运算时间缩减一定幅度来确定推理时间阈值,即可接受的最长运算时间。

在步骤S2中,能够支持的多个不同的量化精度根据运行所述深度神经网络的硬件产品的说明来确定即可,各个硬件厂家针对不同产品的运行精度都有明确说明,直接查询相关信息即可。

针对步骤S3,本发明提供了两种不同的实施例,下面将分别结合图2和3来详细描述。

如图2所示,在第一实施例中,步骤S3进一步包括:

S311,在用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的每一层分别进行推理。

S312,记录每次迭代时所述深度神经网络的实际推理精度和实际推理时间。

S313,针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度。

举例来说,按照图2的实施例,如果系统可以支持fp32、fp16和int8三种精度,当对第一层采用int8或fp16进行推理时,其他层都采用fp32进行推理,以此类推,当对第二层采用int8或fp16进行推理时,将第一层恢复到fp32精度,并且其他层也都采用fp32进行推理。本领域技术人员能够理解的是,由于在对每一层进行迭代时其他层都保持为最高精度,因此,理论上来说图2实施例可以更准确地反映每一层在每一种低精度下对系统输出精度和运算时间的影响。

继续参阅图3,在第二实施例中,步骤S3进一步包括:

S321,在用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的第一层分别进行推理,并记录每次推理的实际推理精度和实际推理时间;

S322,针对第一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;

S323,在将第一层的量化精度固定为筛选出的最低量化精度并用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的第二层进行推理,并记录每次推理的实际推理精度和实际推理时间;

S324,针对第二层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;

S325,以此类推,迭代所述深度神经网络的所有层,最终针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度。

继续用上面的例子,按照图3的实施例,如果系统可以支持fp32、fp16和int8三种精度,首先对第一层采用int8和fp16分别进行推理,其他层都采用fp32进行推理,结果显示只有采用fp16时系统的实际输出精度才符合要求,采用int8时不符合要求,于是在接下来对第二层进行迭代时先把第一层固定为fp16(第一层可接受的最低精度),然后才对第二层进行三种不同精度的推理,当然,此时除第一层和第二层之外其他层都采用fp32进行推理。如本申请的背景技术部分所述,在实际的神经网络中,不同层之间的计算相互影响和关联,而在最终采用的混合精度策略中全精度层肯定只是一小部分,因此,图3的实施例能够更准确地反映每一层在采用最终的混合精度策略时对系统输出精度和运算时间的影响。

接下来结合图4来描述步骤S4,在步骤S4中,“将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略”的步骤具体包括:

S411,用针对所有层筛选出的量化精度的多个不同组合中的每一个分别对所述深度神经网络进行推理,并记录每次推理的实际推理精度和实际推理时间;

S412,筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的一个或多个组合,作为所述混合精度量化策略。

更具体地,在步骤S412中,当筛选出的组合为一个时,将筛选出的一个组合直接作为所述混合精度量化策略;当筛选出的组合为多个时,将筛选出的多个组合中选定的一个作为所述混合精度量化策略。并且,当筛选出的组合为多个时,确定最终混合精度量化策略的方式往往是根据经验。例如,技术人员根据经验认为某一层或某些层更重要,则可以选择所述层精度较高的组合策略作为最终策略。

继续上面的例子,假设网络总共有四层,第一层的最低可接受精度为fp16,相应地,其可用精度为fp16和fp32;第二层的最低可接受精度为int8,相应地,其可用精度为int8、fp16和fp32;第三层和第四层的最低可接受精度均为fp32,相应地,其可用精度均只有fp32。因此,针对所有四个层筛选出的量化精度的组合包括如下六种:1.fp16、int8、fp32、fp32;2.fp16、fp16、fp32、fp32;3.fp16、fp32、fp32、fp32;4.Fp32、int8、fp32、fp32;5.Fp32、fp16、fp32、fp32;6.Fp32、fp32、fp32、fp32。首先,第6种组合是全精度组合(即针对各层都是最高精度),可以直接去掉,然后用组合1-5对网络进行推理,根据每一种组合的推理精度和运算时间来进行选择。假设对组合1-5进行推理之后,发现组合1-5都满足输出精度要求(即输出精度大于推理精度阈值),但只有组合1和2满足运算时间要求(即运算时间小于推理时间阈值),则最终可以在组合1和2中选定一个作为最终策略。更具体地,假设技术人员认为第二层比较重要,应该采用相对较高的精度,则此时应该选择组合2。相反,如果没有这种重要性的考虑,则可以采用运算时间最短的组合。

关于上述例子,还需要指出的是,理论上来说,在组合1和组合2中,应该是组合1的运算时间最短,但是如上文中所述,在实际的神经网络中,不同层之间的计算是相互影响和关联的,虽然在其他层精度相同的情况下组合2的第二层精度高于组合1,但在特定情况下也有可能组合2的最终运算时间比组合1短。因此,针对每一种组合的实际输出精度和运算时间,只有通过实际推理才能作出最准确的判断。

此外,上述例子只是为了说明本发明的技术方案而假设的,实践中深度神经网络往往是几十上百层,不可能是简单的个位数。因此,上述例子仅仅用于说明本发明的原理,不应该对本发明的保护范围构成任何限制。

下面再来结合一个人脸识别神经网络来更形象地描述本发明的技术方案。该网络的fp32(高精度)的识别精度为97.5%,推理一张图的速度为5ms,训练时数据分为3个类别共30万张图:亚洲人(10万张图),白人(10万张图),黑人(10万张图)。我们的目标是在NVIDIAGPU-TeslaT4上将网络推理速度由5ms提升为3ms,且精度不低于96.5%。也就是说,针对NVIDIAGPU-TeslaT4,设定该人脸识别网络的推理精度阈值为96.5%,推理时间阈值为3ms。接下来准备调优数据集,在三个类别中分别随机选取100张图,共300张图,并对图片进行预处理,例如在通道或时间或频率维度上对图片进行归一化处理,以使其可以直接作为该人脸识别网络的输入。由于TeslaT4的GPU支持fp32、fp16、int8三种精度的计算,因此,确定运行该人脸识别网络的硬件可支持的精度分别为fp32、fp16、int8。

接下来逐层迭代,先将第一层设置为int8精度,观察推理结果精度,观察由于这一操作,导致了系统输出精度有多大的损失(具体是从97.5%下降了多少),并记录整个推理过程的耗时(具体是从5ms缩减了多少),然后再尝试将第一层设置为fp16,观察精度损失和记录耗时。按照此法,不断遍历所有的层(将第二层设置为int8、fp16并记录精度损失和记录整个推理过程的时间,将第三层设置为int8、fp16并记录精度损失,以此类推)。当然,如上面结合图2和3描述的,在对某一层进行迭代时,可以将已经迭代过的层固定为可接受的最低精度,也可以将其他所有已迭代和未迭代的层都固定为最高精度,这两种方式各有利弊,具体这里不再重复。

最后,根据迭代过程中记录的结果整理出多个精度组合,然后针对这些组合分别进行一次推理,筛选出满足上述阈值的组合,在此基础上可以直接将精度符合要求且时间最短的组合作为最终策略,也可以使用排序法或其他更复杂的算法,或者根据经验来筛选出一个速度最优且满足精度要求的混合精度策略。

本发明的另一个方面还提供了一种用于深度神经网络的混合精度量化策略确定系统,所述系统包括:阈值设定模块,其用于设定所述深度神经网络的推理精度阈值和推理时间阈值;量化精度确定模块,其用于确定运行所述深度神经网络的硬件能够支持的多个不同的量化精度;混合精度策略确定模块,其在将测试数据输入所述深度神经网络进行推理的过程中,用每一种量化精度迭代所述深度神经网络的所有层并记录每次迭代时所述深度神经网络的实际推理精度和实际推理时间,针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度,并将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略。

在优选实施方式中,在用每一种量化精度迭代所述深度神经网络的所有层时,所述混合精度策略确定模块具体执行下列操作:在用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的每一层分别进行推理。

在优选实施方式中,所述混合精度策略确定模块具体执行下列操作:在用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的第一层分别进行推理,并记录每次推理的实际推理精度和实际推理时间;针对第一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;在将第一层的量化精度固定为筛选出的最低量化精度并用最高量化精度对其他层进行推理的前提下,用每一种量化精度对所述深度神经网络的第二层进行推理,并记录每次推理的实际推理精度和实际推理时间;针对第二层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度;以此类推,迭代所述深度神经网络的所有层,最终针对每一层筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的所有量化精度,并将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略。

在优选实施方式中,在将针对所有层筛选出的量化精度的多个不同组合中的一个确定为所述混合精度量化策略时,所述混合精度策略确定模块具体执行下列操作:用所述多个不同组合中的每一个分别对所述深度神经网络进行推理,并记录每次推理的实际推理精度和实际推理时间;筛选出实际推理精度大于所述推理精度阈值且实际推理时间小于所述推理时间阈值的一个或多个组合,作为所述混合精度量化策略。

在优选实施方式中,当筛选出的组合为一个时,所述混合精度策略确定模块将筛选出的一个组合直接作为所述混合精度量化策略;并且/或者当筛选出的组合为多个时,所述混合精度策略确定模块根据用户的选择将筛选出的多个组合中选定一个作为所述混合精度量化策略。

本领域技术人员能够理解的是,实际操作中可以对系统中的各个模块进行适应性的拆分或合并。对具体模块的这种拆分或合并并不会导致技术方案偏离本发明的原理,因此,拆分或合并之后的技术方案都将落入本发明的保护范围内。进一步,应该理解的是,由于各个模块的设定仅仅是为了说明本发明的系统的功能单元,这些模块对应的物理器件可以是处理器本身,或者处理器中软件的一部分,硬件的一部分,或者软件和硬件结合的一部分。

本领域技术人员能够理解的是,上述实施例的方法的全部或部分流程也可以通过计算机程序来指令相关的硬件完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器、随机存取存储器、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

进一步,本发明的又一个方面还提供了一种计算机可读存储介质,所述存储介质中存储有多条程序代码,所述程序代码适用于由处理器加载并运行以执行上文描述的用于深度神经网络的混合精度量化策略确定方法。

进一步,本发明的又一个方面还提供了一种控制装置,该控制装置包括处理器和存储装置,所述存储装置中存储有多条程序代码,其特征在于,所述程序代码适于由所述处理器加载并运行以执行上文描述的用于深度神经网络的混合精度量化策略确定方法。

至此,已经结合附图所示的一个实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号