深度学习模型的量化方法和相关装置制造方法及图纸

技术编号:32027618 阅读:10 留言:0更新日期:2022-01-27 12:38
本公开提供了一种深度学习模型的量化方法和相关装置。该方法包括:接收待量化深度学习模型;将待量化深度学习模型划分成子模型;针对子模型,从预先设置的候选量化算法和候选量化策略的组合中,选择与该子模型对应的量化算法和量化策略,所述量化策略是量化过程中除量化算法外需要遵循的准则;输出子模型按照对应的量化算法和量化策略量化后得到的量化后深度学习模型。本公开实施例克服了现有技术的模型量化要么精度低、要么复杂度高的问题,既能保证量化精度,又降低复杂度。又降低复杂度。又降低复杂度。

【技术实现步骤摘要】
深度学习模型的量化方法和相关装置


[0001]本公开涉及深度学习领域,更具体而言,涉及一种深度学习模型的量化方法和相关装置。

技术介绍

[0002]深度学习模型已经广泛应用于各种领域。在生成深度学习模型后,要将深度学习模型部署本地芯片执行或部署到云端执行。在部署过程中的性能直接影响到之后使用深度学习模型进行推理(Inference)时的性能和体验。量化是部署过程中非常关键的一个步骤。
[0003]量化是指,将深度学习模型中的每个节点的权重数据和输入数据,从高精度的量化级转换为低精度的量化级,例如从32位单精度浮点数 (FP32)转化为8位整型数据(INT8)。这样做虽然精度降低了,但有助于降低对数据吞吐量和存储空间的要求。量化算法和策略的优劣直接决定最终部署到芯片上的模型的运行精度和速度。
[0004]现有的部署框架中,通常对完整模型采用单一的量化算法和策略。例如,针对mobilenetv1模型的量化,如果选择非对称量化算法,并且校准方式选择KL散度,则对整个模型的量化将统一采用这样的算法和策略。这种方式带来的问题是,要么造成量化校准的带来的巨大时间损耗,要么使得部分模型的量化精度爆炸。

技术实现思路

[0005]有鉴于此,本公开旨在克服现有技术的模型量化要么精度低、要么复杂度高的问题,实现既能保证量化精度,又降低复杂度。
[0006]为了达到这个目的,根据本公开的一方面,本公开提供一种深度学习模型的量化方法,包括:
[0007]接收待量化深度学习模型;
[0008]将待量化深度学习模型划分成子模型;
[0009]针对子模型,从预先设置的候选量化算法和候选量化策略的组合中,选择与该子模型对应的量化算法和量化策略,所述量化策略是量化过程中除量化算法外需要遵循的准则;
[0010]输出子模型按照对应的量化算法和量化策略量化后得到的量化后深度学习模型。
[0011]可选地,在选择与该子模型对应的量化算法和量化策略之前,所述方法还包括:接收用户输入的量化方向;所述选择与该子模型对应的量化算法和量化策略,包括:选择与该子模型和所述量化方向对应的量化算法和量化策略。
[0012]可选地,所述接收用户输入的量化方向,包括:接收用户输入的与划分成的子模型对应的量化方向;所述选择与该子模型和所述量化方向对应的量化算法和量化策略,包括:按照该子模型和与划分成的子模型对应的量化方向,选择量化算法和量化策略。
[0013]可选地,所述将待量化深度学习模型划分成子模型,包括:将所述待量化深度学习模型输入子模型划分模型,由所述子模型划分模型输出划分的子模型。
[0014]可选地,所述将待量化深度学习模型划分成子模型,包括:基于所述待量化深度学习模型中节点的类型和层级中的至少一个,根据预定规则,将所述节点划分到子模型。
[0015]可选地,所述将待量化深度学习模型划分成子模型,包括:
[0016]生成并显示所述待量化深度学习模型对应的静态图;
[0017]接收用户对所述静态图的子模型划分指示;
[0018]按照所述子模型划分指示,将所述深度学习模型划分成子模型。
[0019]可选地,所述量化策略包括校准算法和量化后的位数中的至少一个。
[0020]可选地,所述候选量化算法和候选量化策略的组合通过以下方式预先设置:
[0021]获取与所述加速单元兼容的量化算法,作为候选量化算法;
[0022]获取与所述加速单元兼容的量化策略,作为候选量化策略;
[0023]对所述候选量化算法和所述候选量化策略进行相互组合。
[0024]可选地,所述选择与该子模型和所述量化方向对应的量化算法和量化策略,包括:将该子模型和所述量化方向输入量化算法与策略选择模型,由所述量化算法与策略选择模型输出选择的量化算法与量化策略。
[0025]可选地,所述选择与该子模型对应的量化算法和量化策略,包括:
[0026]显示所述预先设置的候选量化算法和候选量化策略的组合;
[0027]接收用户在所述预先设置的候选量化算法和候选量化策略的组合中的选择指示;
[0028]按照该选择指示,选择与该子模型对应的量化算法和量化策略。
[0029]可选地,所述选择与该子模型对应的量化算法和量化策略,包括:针对该子模型中的节点的输入张量、权重和偏移量,分别选择对应的量化算法和量化策略。
[0030]可选地,所述将子模型按照对应的量化算法和量化策略量化,包括:
[0031]对所述子模型的节点按照所述校准算法进行校准;
[0032]对校准后的节点,按照所述量化算法和量化后的位数进行量化。
[0033]根据本公开的一方面,提供了一种云服务系统,包括多个云服务器,用于分布式存储计算机可执行代码,当所述计算机可执行代码被相应云服务器上的处理器执行时,实现如上所述的方法。
[0034]根据本公开的一方面,提供了一种数据中心,包含如上所述的云服务系统。
[0035]根据本公开的一方面,提供了一种计算机设备,包括:
[0036]存储器,用于存储计算机可执行代码;
[0037]处理器,用于执行所述存储器存储的计算机可执行代码,以实现如上所述的方法。
[0038]在本公开实施例中,将深度学习模型划分成子模型。针对子模型,确定对该子模型合适的量化算法和量化策略,避免对整体模型运用同一种量化算法和量化策略要么导致巨大时间损耗、要么导致精度爆炸的问题。其避免了量化算法和策略对模型敏感,也避免了针对整个网络模型量化算法和策略强行加到每个子模型中,增加量化的计算复杂度的问题,实现既能保证量化精度,又降低复杂度。
附图说明
[0039]通过参考以下附图对本公开实施例的描述,本公开的上述以及其它目的、特征和优点将更为清楚,在附图中:
[0040]图1是本公开一个实施例所应用的数据中心的结构图;
[0041]图2A-D是本公开实施例的深度学习模型的量化方法应用在云场景下的界面变化图;
[0042]图3示出了本公开实施例的量化过程的原理图;
[0043]图4示出了根据本公开一个实施例的深度学习模型的量化方法的流程图。
具体实施方式
[0044]以下基于实施例对本公开进行描述,但是本公开并不仅仅限于这些实施例。在下文对本公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本公开。为了避免混淆本公开的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。
[0045]在本文中使用以下术语。
[0046]深度学习模型:深度学习是机器学习领域中一个新的研究方向,它被引入机器学习使其更接近于最初的目标——人工智能。深度学习学习样本数据的内在规律和表示层次,这些学习过程中获得的信息对诸如文字,图像和声音等数据的解释有很大的帮助。它的最终目标是本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种深度学习模型的量化方法,包括:接收待量化深度学习模型;将待量化深度学习模型划分成子模型;针对子模型,从预先设置的候选量化算法和候选量化策略的组合中,选择与该子模型对应的量化算法和量化策略,所述量化策略是量化过程中除量化算法外需要遵循的准则;输出子模型按照对应的量化算法和量化策略量化后得到的量化后深度学习模型。2.根据权利要求1所述的方法,其中,在选择与该子模型对应的量化算法和量化策略之前,所述方法还包括:接收用户输入的量化方向;所述选择与该子模型对应的量化算法和量化策略,包括:选择与该子模型和所述量化方向对应的量化算法和量化策略。3.根据权利要求2所述的方法,其中,所述接收用户输入的量化方向,包括:接收用户输入的与划分成的子模型对应的量化方向;所述选择与该子模型和所述量化方向对应的量化算法和量化策略,包括:按照该子模型和与划分成的子模型对应的量化方向,选择量化算法和量化策略。4.根据权利要求1所述的方法,其中,所述将待量化深度学习模型划分成子模型,包括:将所述待量化深度学习模型输入子模型划分模型,由所述子模型划分模型输出划分的子模型。5.根据权利要求1所述的方法,其中,所述将待量化深度学习模型划分成子模型,包括:基于所述待量化深度学习模型中节点的类型和层级中的至少一个,根据预定规则,将所述节点划分到子模型。6.根据权利要求1所述的方法,其中,所述将待量化深度学习模型划分成子模型,包括:生成并显示所述待量化深度学习模型对应的静态图;接收用户对所述静态图的子模型划分指示;按照所述子模型划分指示,将所述深度学习模型划分成子模型。7.根据权利要求1所述的方法,其中,所述量化策略包括校准算法和量化后的位数中的至少一个。8.根据权利要求1所述的方法...

【专利技术属性】
技术研发人员:陈峰
申请(专利权)人:平头哥上海半导体技术有限公司
类型:发明
国别省市:

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

1