量化门限调优方法、装置、设备及存储介质
文献发布时间:2023-06-19 18:34:06
技术领域
本发明涉及神经网络技术领域,尤其涉及一种量化门限调优方法、装置、设备及存储介质。
背景技术
神经网络领域近年逐渐落地,在应用领域大面积铺开,对网络推理的效率有更高的要求。不同于科研和研究阶段基本都使用浮点进行训练和评估,实际部署基于能耗和速度都要求有定点化的实现。训练后量化就是比较实用的一种浮点转定点的方法。训练后量化一般使用少量样本推理统计每个算子在网络中的数据分布,决定量化门限,将浮点权重和数据量化为定点数据,主要是8位定点数据,专用芯片中8位定点数计算单元有较小的功耗和较大的算力,从而提升整个网络的性能。
目前,训练后量化存在依赖于网络特征和推理样本的典型性因素,且缺乏能够决策各网络层最优门限算法的方法,导致量化精度低的问题。因此,如何解决目前神经网络训练后量化的量化精度低成为了亟待解决的技术问题。
发明内容
本发明实施例提供了一种量化门限调优方法、装置、设备及存储介质,旨在选择各网络层的最优门选算法,提高神经网络训练后量化的量化精度。
第一方面,本发明实施例提供一种量化门限调优方法,包括:获取样本数据,基于浮点网络模型中的至少一个网络层,对所述样本数据进行推理计算,获得各网络层对应的算子输出数据;基于至少一个预设门限计算方法和各网络层输出的所述算子输出数据,计算各网络层对应的候选门限值组,所述候选门限组中包括至少一个候选门限值;基于门限传播方法,对所述各网络层对应的候选门限值组进行优化调整,确定各网络层对应的当前候选门限值组;基于所述各网络层对应的当前候选门限值组,确定所述各网络层的当前量化门限,获得当前门限组合;基于所述当前门限组合,对所述算子输出数据进行量化计算,获得目标量化数据。
第二方面,本发明实施例还提供一种计算机设备,所述计算机设备包括处理器、存储器、存储在所述存储器上并可被所述处理器执行的计算机程序以及用于实现所述处理器和所述存储器之间的连接通信的数据总线,其中所述计算机程序被所述处理器执行时,实现如本发明说明书提供的任一项量化门限调优方法。
第三方面,本发明实施例还提供一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如本发明说明书提供的任一项量化门限调优方法。
本发明实施例提供一种量化门限调优方法、装置、设备及存储介质,通过对小批量样本数据的推理计算,获得浮点网络模型各网络层计算后输出的算子输出数据;通过至少一个预设门限计算方法,计算各网络层中的多个门限值,从而获得各网络层对应的候选门限值组,每一网络层均包含多个候选门限值,增加了门限可选性,便于快速选择最佳的量化门限,提高了量化速度;通过门限传播方法,可以将存在关联关系的网络层对应的门限值统一,减少误差影响,提高量化精度;在各网络层中的候选门限值组中各自选择最优解的候选门限值,作为各网络层的当前量化门限,提高了浮点网络模型的量化精度。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种量化门限调优方法的流程示意图;
图2是本发明实施例提供的门限传播方法的实现流程示意图;
图3是本发明实施例提供的一种量化数据调优过程的流程示意图;
图4是本发明实施例提供的一种计算机设备的结构示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
神经网络领域近年逐渐落地,在应用领域大面积铺开,对网络推理的效率有更高的要求。不同于科研和研究阶段基本都使用浮点进行训练和评估,实际部署基于能耗和速度都要求有定点化的实现。训练后量化就是比较实用的一种浮点转定点的方法。训练后量化一般使用少量样本推理统计每个算子在网络中的数据分布,决定量化门限,将浮点权重和数据量化为定点数据,主要是8位定点数据,专用芯片中8位定点数计算单元有较小的功耗和较大的算力,从而提升整个网络的性能。目前,训练后量化存在依赖于网络特征和推理样本的典型性因素,且缺乏能够决策各网络层最优门限算法的方法,导致量化精度低的问题。
为解决上述问题,本发明实施例提供一种量化门限调优方法、装置、设备及存储介质,通过对小批量样本数据的推理计算,获得浮点网络模型各网络层计算后输出的算子输出数据;通过至少一个预设门限计算方法,计算各网络层中的多个门限值,从而获得各网络层对应的候选门限值组,每一网络层均包含多个候选门限值,增加了门限可选性,便于快速选择最佳的量化门限,提高了量化速度;通过门限传播方法,可以将存在关联关系的网络层对应的门限值统一,减少误差影响,提高量化精度;在各网络层中的候选门限值组中各自选择最优解的候选门限值,作为各网络层的当前量化门限,提高了浮点网络模型的量化精度。
本发明实施例中的计算机设备可以包括服务器、终端设备、嵌入式设备、边缘计算设备等,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以包括手机、平板电脑、笔记本电脑和个人计算机等。
请参阅图1,图1是本发明实施例提供的一种量化门限调优方法的流程示意图。
如图1所示,该量化门限调优方法包括步骤S101至步骤S105。
步骤S101、获取样本数据,基于浮点网络模型中的各网络层,对所述样本数据进行推理计算,获得各网络层对应的算子输出数据。
本实施例中,一般来说,对于权重的量化,由于权重的数据分布是静态的,可以通过统计最大值和最小值的线性映射即可。而对于推理激活值来说,其数据分布是动态的,为了得到激活值的数据分布,往往需要一个校准集进行抽样分布,也即小批量样本数据的输出结果的分布,然后再通过量化算法进行量化门限的选取。
其中,模型量化就是将浮点存储(运算)转换为整型存储(运算)的一种模型压缩技术,即原来表示一个权重需要使用float32表示,量化后只需要使用int8来表示。模型量化可以实现更少的存储开销和带宽需求、更快的计算速度以及更低的能耗与占用面积。模型量化桥接了定点与浮点,建立了一种有效的数据映射关系,使得以较小的精度损失代价获得了较好的收益。
在一实施例中,训练后量化(PTQ)是指分析经过训练的神经网络,使用32位浮点值(FP32网络和FP模型),查找和建议最佳量化参数,无需再训练或微调模型。PTQ方法可以无数据,即不需要数据集,也可以使用少量校准数据集,优化模型的量化推理也可以使用小型校准数据集来优化量化推理的模型。
在一实施例中,将小批量的样本数据输入到经过初始化的浮点网络模型中,通过浮点网络模型中的各网络层,对输入的小批量样本数据进行推理,每一层网络层根据自身的特性,对样本数据进行不同方式的计算,从而输出不同的计算结果,由此,可以获得各网络层输出的算子输出数据。
在一实施例中,在应用浮点网络模型之前,先使用大量样本数据对浮点网络模型进行预训练,从而确定浮点网络模型各网络层的参数,使其适合进行量化。
在一实施例中,神经网络的网络层可以包括卷积层(conv)、激活层(Relu/Active)、池化层(Pooling)、Concat层等。
步骤S102、基于至少一个预设门限计算方法和各网络层输出的所述算子输出数据,计算各网络层对应的候选门限值组,所述候选门限组中包括至少一个候选门限值;
本实施例中,对于样本推理过程中,各网络层输出的算子输出数据,通过统计算子输出数据的分布,最大值、最小值等分布情况,对各网络层进行量化门限的计算。
在一实施例中,对于每一网络层都采用多种门限计算方法进行量化门限的计算,以便于量化调优时择优使用。其中,预设门限计算方法可以包括但不限于KL散度(Kullback-Leibler Divergence)、均方误差MSE(Mean Squared Error)、几何一致性指导ACMM、对称量化算法ACIQ等。
在一实施例中,对于每一个网络层输出的算子输出数据,都进行整体数据分布的统计,以及最大值、最小值等分布情况的统计,然后通过不同的门限算法计算相应的门限值,作为各网络层的候选门限值,即各网络层对应一个候选门限值组,每一个候选门限值组包括至少一个门限算法计算得到的门限值。
在一实施例中,训练的时候用1万张图片的样本数据进行训练;应用的时候用小批量样本数据,比如200张图片,应用浮点模型推理200次。假设浮点网络模型存在10层,每一层输出的数据都会统计,200次的最大、最小值,通过两百次统计结果叠加,用多种预设算法统计每一层门限值,从而使得每一层都对应多个门限值作为候选门限值。
步骤S103、基于门限传播方法,对所述各网络层对应的候选门限值组进行优化调整,确定各网络层对应的当前候选门限值组;
本实施例中,对于各网络层中存在关联关系的网络层之间,可以通过门限传播方法,择优选择其中一个网络层的候选门限值,覆盖其他网络层的候选门限值,统一关联网络层之间的候选门限,以降低损失。
比如,如图2所示,图2是本发明实施例提供的门限传播方法的实现流程示意图。本实施例中,所述步骤S103包括:
步骤S1031、在所述各网络层中确定存在关联关系的至少两个网络层,作为关联层;
步骤S1032、基于所述门限传播方法,以所述各关联层对应的所述候选门限值,应用于其余关联层,获得至少两组应用数据;
步骤S1033、基于所述至少两组应用数据,在至少两个所述关联层中确定主关联层和从关联层,并将所述主关联层对应的所述候选门限值组应用至所述从关联层,作为所述从关联层对应的当前候选门限值组。
在一实施例中,门限传播方法可以包括前向传播算法和反向传播算法。
其中,前向传播算法就是将上一层的输出作为下一层的输入,并计算下一层的输出,一直到运算到输出层为止。
反向传播(back propagation,BP)算法是"误差反向传播"的简称,也称为backprop,允许来自代价函数的信息通过网络向后流动,以便计算梯度。反向传播是一种与最优化方法(如梯度下降法)结合使用的,用来训练人工神经网络的常见方法。该方法对网络中所有权重计算损失函数的梯度,这个梯度会反馈给最优化方法,用来更新权值以最小化损失函数。
在一实施例中,通过门限传播算法,依次将各关联层的候选门限值应用于其余关联层进行推理计算,获得应用数据,然后对比初始计算的算子输出算法,选择其中损失最小的候选门限值作为各关联层的当前量化门限。
在一实施例中,根据各关联层的数据影响大小,决定采用其中数据误差影响最大的关联层的候选门限值作为各关联层的当前量化门限。比如浮点网络模型中有10层网络层,其中第三层和第四层有关联,使用相同的会比较好,但是要在第三层和第四层进行选择。通过门限传播算法,将第三层门限应用于第四层,或者将第四层门限应用于第三层,如果计算结果表明用第四层的门限值更优,则使用第四层的门限值覆盖第三层的所有门限值,将第四层的门限值应用于第三层。
步骤S104、基于所述各网络层对应的当前候选门限值组,确定所述各网络层的当前量化门限,获得当前门限组合;
本实施例中,统计数据分布、计算门限,用小批量的样本感知网络中的数据分布,用这些数据计算各个网络层当前应用的最佳门限,作为各个网络层的当前量化门限,以形成用于分析当前样本数据的最佳门限组合。
在一实施例中,所述步骤S104包括:
统计所述算子输出数据的数据分布、数据最大值和数据最小值;
基于所述数据分布、数据最大值、所述数据最小值以及最小损失原则,在所述各网络层对应的当前候选门限值组中确定各网络层的所述当前量化门限,获得所述当前门限组合。
在一实施例中,在对样本数据推理的过程中,可以进行各网络层输出的算子输出数据的数据分布的统计,比如第二层推理了200次,会有200次输出,每次输出1000个数,那么两百次输出会有20万个数,该20万个数统计的过程中,会统计各数据分段中的数据分布,比如0-1会有多少个数、1-2会有多少个数,根据这些数据分布,用不同的算法计算出多个门限。每一种算法都可以计算门限,并进行网络量化,但是并不确定哪一种是当前最优门限算法,所以,可以对每一个网络层中的多个门限值进行择优选择,在每一层中选择当前最佳的门限值,作为当前量化门限,以使得int8转化损失最小。
步骤S105、基于所述当前门限组合,对所述算子输出数据进行量化计算,获得目标量化数据。
本实施例中,量化就是通过某种方法将浮点模型转为定点模型。比如,原来的模型里面的权重(weight)都是FP32,通过模型量化,将模型变成权重(weight)都是int8的定点模型。
其中,int8是指八位整型占用1个字节,int8是一种定点计算方式,代表整数运算,一般是由浮点运算量化而来。在二进制中一个“0”或者“1”为一bit,int8则意味着用8bit来表示一个数字。因此,虽然int8比FP16精度低,但是数据量小、能耗低,计算速度相对更快,更符合端侧运算的特点。
上述实施例提供了一种量化门限调优方法,该方法通过对小批量样本数据的推理计算,获得浮点网络模型各网络层计算后输出的算子输出数据;通过至少一个预设门限计算方法,计算各网络层中的多个门限值,从而获得各网络层对应的候选门限值组,每一网络层均包含多个候选门限值,增加了门限可选性,便于快速选择最佳的量化门限,提高了量化速度;通过门限传播方法,可以将存在关联关系的网络层对应的门限值统一,减少误差影响,提高量化精度;在各网络层中的候选门限值组中各自选择最优解的候选门限值,作为各网络层的当前量化门限,提高了浮点网络模型的量化精度。
请参阅图3,图3是本发明实施例提供的一种量化数据调优过程的流程示意图。
如图3所示,该量化门限调优方法包括步骤S201至步骤S206。
步骤S201、基于预设量化精度,判断所述量化数据的当前量化精度是否满足精度需求;
步骤S202、在所述量化数据的当前量化精度满足精度需求时,输出所述目标量化数据。
本实施例中,在量化过程中会存在精度损失,此时,需要通过预设量化精度,对输出的量化数据进行精度判断。对于满足精度需求的量化数据,则可以作为目标量化数据输出;而对于不满足精度需求的量化数据,则需要进行重新量化。
可以理解地是,量化一般都会有精度损失。比如FP32能保存的数值范围本身就比uint8多,因此必定有大量数值无法用uint8表示,只能四舍五入成uint8型的数值。量化模型的误差也来自四舍五入的clip操作。
如图3所示,所述步骤S201之后,还包括:
步骤S203、在所述量化数据的当前量化精度不满足精度需求时,计算各网络层的敏感度,获得敏感度排序,并基于所述敏感度排序,在各网络层中确定敏感层;
本实施例中,在计算敏感层排序阶段,可以指定网络中的中间层而不仅仅是输出层作为敏感层,并可选择其余弦距离或者最小均方误差等作为判断调优的指标,并支持分段或者骨干部分调优,减少后处理等部分的干扰,减少了调优时间,并提高了调优的准确性。
在一实施例中,所述计算各网络层的敏感度,获得敏感度排序,包括:
对所述样本数据进行参数微调,生成误差样本;
基于所述浮点网络模型,对所述误差样本进行推理计算,获得各网络层输出的误差数据;
基于所述算子输出数据和所述误差数据,计算所述各网络层的敏感度,获得所述敏感度排序。
在一实施例中,可以对样本数据进行参数微调,获得误差样本,再输入到浮点网络模型中,以各网络层对误差样本进行推理计算,获得误差数据。然后通过对比算子输出数据和误差数据,判断各网络层的受影响程度,从而对各网络层的敏感度进行排序,并根据敏感度排序,指定敏感度最高的一个或者多个网络层作为敏感层。
步骤S204、获取所述敏感层对应的所述当前候选门限值组,在所述当前候选门限值组中选择未应用的所述候选门限值,作为所述当前量化门限;
步骤S205、基于所述当前量化门限,对所述算子输出数据进行重新量化,获得所述当前量化门限对应的当前量化数据;
本实施例中,敏感层的当前量化门限对于当前量化数据的量化精度影响比较大,敏感层可能是门限值设置不合理,所以需要对敏感层的多个门限值进行选择尝试。
在一实施例中,可以在敏感层的当前候选门限值组中选择一个未应用的候选门限值,替换当前使用的量化门限,作为当前量化门限,然后通过该当前量化门限,再对算子输出数据进行重新量化,得到该当前量化门限对应的当前量化数据,并对该当前量化数据进行精度判断。
步骤S206、基于所述预设量化精度,对所述当前量化数据进行精度判别,并在精度判别不满足时,继续更换所述候选门限值,计算当前量化数据,直至所述当前量化数据对应的所述当前量化精度满足精度需求,输出满足精度要求的所述当前量化数据,作为所述目标量化数据。
本实施例中,可以选择敏感层的当前候选门限值组中未应用过的候选门限值,对算子输出数据进行重新量化,并对每一个候选门限值量化得到的量化数据进行精度计算。
在一实施例中,所述步骤S206包括:
基于所述预设量化精度,判断所述当前量化数据对应的所述当前量化精度是否满足精度需求;
在所述当前量化数据对应的所述当前量化精度不满足精度需求时,在所述敏感层对应的所述当前候选门限值组中选择一个未应用的候选门限值,替换所述当前量化门限;
基于所述当前量化门限,对所述算子输出数据进行重新量化,获得所述当前量化门限对应的当前量化数据,直至所述当前量化数据对应的量化精度满足精度需求,将所述当前量化数据,作为所述目标量化数据。
本实施例中,如果基于某一个候选门限值量化得到的量化数据的精度满足精度需求,则表示该候选门限值更优,将基于该候选门限值量化得到的量化数据作为目标量化数据输出。由此,通过对预先采用多种门限算法计算得到的多个门限值进行尝试选择,能够快速定位各网络层的最优门限值,提高浮点网络的量化效率。
在一实施例中,可以依次选择未应用候选门限值中的一个,替换当前量化门限,对算子输出数据进行重新量化,在对输出的量化数据进行精度判断。如果满足精度需求,则输出量化数据,作为目标量化数据;如果不满足精度需求,则选择下一个候选门限值,替换当前量化门限,继续对算子输出数据进行重新量化,并对量化数据进行精度判断,直至输出的量化数据满足精度需求,将对应的门限值作为量化门限,输出该量化数据,作为目标量化数据。
在一实施例中,可以先对敏感层中的所有候选门限值进行相应的量化计算,然后对各候选门限值对应的各量化数据进行筛选,选择其中损失最小且满足精度需求的候选门限值作为量化门限,其量化数据作为目标量化数据输出。
在一实施例中,可以利用敏感层中所有未应用的候选门限值,对算子输出数据进行并行量化处理,从而输出各候选门限值对应的量化数据,再进行精度判断筛选和损失程度筛选,在各候选门限值中选择最优门限作为量化门限,其对应的量化数据作为目标量化数据输出。
在一实施例中,所述步骤S206之后,还包括:
在所述当前量化数据对应的所述当前量化精度均不满足精度要求时,保留所述敏感层对应的算子输出数据的当前格式输出。
本实施例中,对于敏感层中的所有候选门限值量化得到的量化数据,其精度都不能满足精度需求时,则表示该敏感层可能不适合量化,此时,可以保留该敏感层的浮点权重,不做量化处理。
请参阅图4,图4是本发明实施例提供的一种计算机设备的结构示意性框图。
如图4所示,计算机设备300包括处理器301和存储器302,处理器301和存储器302通过总线303连接,该总线比如为I2C(Inter-integrated Circuit)总线。
具体地,处理器301用于提供计算和控制能力,支撑整个计算机设备的运行。处理器301可以是中央处理单元(Central Processing Unit,CPU),该处理器301还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
具体地,存储器302可以是Flash芯片、只读存储器(ROM,Read-Only Memory)磁盘、光盘、U盘或移动硬盘等。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本发明实施例方案相关的部分结构的框图,并不构成对本发明实施例方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器用于运行存储在存储器中的计算机程序,并在执行所述计算机程序时实现本发明实施例提供的任意一种所述的量化门限调优方法。
在一实施例中,所述处理器用于运行存储在存储器中的计算机程序,并在执行所述计算机程序时,实现以下步骤:
获取样本数据,基于浮点网络模型中的各网络层,对所述样本数据进行推理计算,获得各网络层对应的算子输出数据;
基于至少一个预设门限计算方法和各网络层输出的所述算子输出数据,计算各网络层对应的候选门限值组,所述候选门限组中包括至少一个候选门限值;
基于门限传播方法,对所述各网络层对应的候选门限值组进行优化调整,确定各网络层对应的当前候选门限值组;
基于所述各网络层对应的当前候选门限值组,确定所述各网络层的当前量化门限,获得当前门限组合;
基于所述当前门限组合,对所述算子输出数据进行量化计算,获得目标量化数据。
在一实施例中,所述处理器在实现所述基于所述当前门限组合,对所述算子输出数据进行量化计算,获得目标量化数据时,用于实现:
基于预设量化精度,判断所述量化数据的当前量化精度是否满足精度需求;
在所述量化数据的当前量化精度满足精度需求时,输出所述目标量化数据。
在一实施例中,所述处理器在实现所述基于预设量化精度,判断所述量化数据的当前量化精度是否满足精度需求之后,还用于实现:
在所述量化数据的当前量化精度不满足精度需求时,计算各网络层的敏感度,获得敏感度排序,并基于所述敏感度排序,在各网络层中确定敏感层;
获取所述敏感层对应的所述当前候选门限值组,在所述当前候选门限值组中选择未应用的所述候选门限值,作为所述当前量化门限;
基于所述当前量化门限,对所述算子输出数据进行重新量化,获得所述当前量化门限对应的当前量化数据;
基于所述预设量化精度,对所述当前量化数据进行精度判别,并在精度判别不满足时,继续更换所述候选门限值,计算当前量化数据,直至所述当前量化数据对应的所述当前量化精度满足精度需求,输出满足精度要求的所述当前量化数据,作为所述目标量化数据。
在一实施例中,所述处理器在实现所述基于所述预设量化精度,对所述当前量化数据进行精度判别,并在精度判别不满足时,继续更换所述候选门限值,计算当前量化数据,直至所述当前量化数据对应的所述当前量化精度满足精度需求,输出满足精度要求的所述当前量化数据,作为所述目标量化数据时,用于实现:
基于所述预设量化精度,判断所述当前量化数据对应的所述当前量化精度是否满足精度需求;
在所述当前量化数据对应的所述当前量化精度不满足精度需求时,在所述敏感层对应的所述当前候选门限值组中选择一个未应用的候选门限值,替换所述当前量化门限;
基于所述当前量化门限,对所述算子输出数据进行重新量化,获得所述当前量化门限对应的当前量化数据,直至所述当前量化数据对应的量化精度满足精度需求,将所述当前量化数据,作为所述目标量化数据。
在一实施例中,所述处理器在实现所述基于所述预设量化精度,对所述当前量化数据进行精度判别,并在精度判别不满足时,继续更换所述候选门限值,计算当前量化数据,直至所述当前量化数据对应的所述当前量化精度满足精度需求,输出满足精度要求的所述当前量化数据,作为所述目标量化数据之后,还用于实现:
在所述当前量化数据对应的所述当前量化精度均不满足精度要求时,保留所述敏感层对应的算子输出数据的当前格式输出。
在一实施例中,所述处理器在实现所述计算各网络层的敏感度,获得敏感度排序时,用于实现:
对所述样本数据进行参数微调,生成误差样本;
基于所述浮点网络模型,对所述误差样本进行推理计算,获得各网络层输出的误差数据;
基于所述算子输出数据和所述误差数据,计算所述各网络层的敏感度,获得所述敏感度排序。
在一实施例中,所述处理器在实现所述基于门限传播方法,对所述各网络层对应的候选门限值组进行优化调整,确定各网络层对应的当前候选门限值组时,用于实现:
在所述各网络层中确定存在关联关系的至少两个网络层,作为关联层;
基于所述门限传播方法,以所述各关联层对应的所述候选门限值,应用于其余关联层,获得至少两组应用数据;
基于所述至少两组应用数据,在至少两个所述关联层中确定主关联层和从关联层,并将所述主关联层对应的所述候选门限值组应用至所述从关联层,作为所述从关联层对应的当前候选门限值组。
在一实施例中,所述处理器在实现所述基于所述各网络层对应的当前候选门限值组,确定所述各网络层的当前量化门限,获得当前门限组合时,用于实现:
统计所述算子输出数据的数据分布、数据最大值和数据最小值;
基于所述数据分布、数据最大值、所述数据最小值以及最小损失原则,在所述各网络层对应的当前候选门限值组中确定各网络层的所述当前量化门限,获得所述当前门限组合。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的计算机设备的具体工作过程,可以参考前述量化门限调优方法实施例中的对应过程,在此不再赘述。
本发明实施例还提供一种存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如本发明实施例说明书提供的任一项量化门限调优方法。
其中,所述存储介质可以是前述实施例所述的计算机设备的内部存储单元,例如所述计算机设备的硬盘或内存。所述存储介质也可以是所述计算机设备的外部存储设备,例如所述计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施例中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
应当理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本发明的具体实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
- 语音参数量化方法、装置、计算机设备和存储介质
- 存储设备在线检测方法、装置、设备及可读存储介质
- 一种后端存储设备的管理方法、装置、设备以及存储介质
- 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
- 一种数据存储方法及装置、一种计算设备及存储介质
- 离线量化调优方法、装置、设备、介质及程序产品
- 存储单元门限电压读取方法、装置、电子设备及存储介质