掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本发明涉及计算机视觉领域,尤指一种离线量化参数加注方法、装置、电子设备和存储介质。

背景技术

在计算机视觉领域中,用于加速深度学习人工智能算法模型部署通常采用专用的神经网络加速器,为了提高计算效率采用低比特整型存储算法模型参数,将浮点参数转换为低比特整型参数需要进行量化操作。

常见的量化操作是通过神经网络加速器厂商提供的模型转换工具实现的,但是使用者无法干预量化过程,即使有精度补偿参数也无法干预整个量化模型转换的过程。

发明内容

本发明的目的是提供一种离线量化参数加注方法、装置、电子设备和存储介质,解决上述问题。

本发明提供的技术方案如下:

一方面,提供一种离线量化参数加注方法,包括:

通过神经网络加速器模型转换工具,获取待量化浮点网络模型的存储文件;

通过量化参数离线加注模块,解析离线量化参数文件,以获得离线量化参数;

通过所述量化参数离线加注模块,根据层间量化参数存储表达格式,将所述离线量化参数加注至所述神经网络加速器模型转换工具,以量化所述待量化浮点网络模型。

进一步优选地,所述通过量化参数离线加注模块,解析离线量化参数文件,以获得离线量化参数,包括:

通过量化参数离线加注模块加载所述离线量化参数文件;

通过量化参数离线加注模块解析所述离线量化参数文件,以获得解析后的所述离线量化参数;

其中,所述离线量化参数包括数据量化参数、权重量化参数、偏移量量化参数。

进一步优选地,所述通过神经网络加速器模型转换工具,获取待量化浮点网络模型的存储文件,包括:

启动所述神经网络加速器模型转换工具;

通过所述神经网络加速器模型转换工具,加载待量化的浮点网络模型,以获取所述待量化浮点网络模型的存储文件。

进一步优选地,所述通过所述神经网络加速器模型转换工具,加载待量化的浮点网络模型,以获取所述待量化浮点网络模型的存储文件,包括:

从所述待量化的浮点网络模型的文件路径,读取所述待量化的浮点网络模型的原始训练框架的网络模型文件;

通过所述网络模型文件的网络结构参数,构造网络模型计算图;

将所述网络模型计算图的权重、偏移量存储为浮点数据类型,以得到所述待量化浮点网络模型的存储文件。

进一步优选地,所述通过所述量化参数离线加注模块,根据层间量化参数存储表达格式,将所述离线量化参数加注至所述神经网络加速器模型转换工具,以量化所述待量化浮点网络模型,包括:

根据所述离线量化参数,将所述浮点数据类型的权重、偏移量量化为整型数据类型的权重、偏移量,以量化所述待量化浮点网络模型,得到整型网络模型。

一种离线量化参数加注装置,包括:

获取模块,用于通过神经网络加速器模型转换工具,获取待量化浮点网络模型的存储文件;

量化参数离线加注模块,用于通过量化参数离线加注模块,解析离线量化参数文件,以获得离线量化参数;

层间加注模块,用于通过所述量化参数离线加注模块,根据层间量化参数存储表达格式,将所述离线量化参数加注至所述神经网络加速器模型转换工具,以量化所述待量化浮点网络模型。

进一步优选地,所述量化参数离线加注模块,还用于:

通过量化参数离线加注模块加载所述离线量化参数文件;

通过量化参数离线加注模块解析所述离线量化参数文件,以获得解析后的所述离线量化参数;

其中,所述离线量化参数包括数据量化参数、权重量化参数、偏移量量化参数。

进一步优选地,所述获取模块,还用于:

启动所述神经网络加速器模型转换工具;

通过所述神经网络加速器模型转换工具,加载待量化的浮点网络模型,以获取所述待量化浮点网络模型的存储文件。

进一步优选地,所述获取模块,还用于:

从所述待量化的浮点网络模型的文件路径,读取所述待量化的浮点网络模型的原始训练框架的网络模型文件;

通过所述网络模型文件的网络结构参数,构造网络模型计算图;

将所述网络模型计算图的权重、偏移量存储为浮点数据类型,以得到所述待量化浮点网络模型的存储文件。

进一步优选地,所述层间加注模块,还用于:

根据所述离线量化参数,将所述浮点数据类型的权重、偏移量量化为整型数据类型的权重、偏移量,以量化所述待量化浮点网络模型,得到整型网络模型。

一种电子设备,所述电子设备包括:

处理器;以及,存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行所述离线量化参数加注方法。

一种存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现所述离线量化参数加注方法所执行的操作。

本发明提供的一种离线量化参数加注方法、装置、电子设备和存储介质至少具有以下技术效果:

本发明通过对原有量化工具加注已有的层间量化参数存储表达格式文件,实现调优量化模型精度。

附图说明

下面结合附图和具体实施方式对本发明作进一步详细说明:

图1是本发明的一种离线量化参数加注方法的实施例一的示意图;

图2是本发明的一种离线量化参数加注装置的实施例的示意图;

图3是本发明的一种离线量化参数加注方法的实施例二的示意图;

图4是本发明的层间量化参数存储表达格式的示意图;

图5是本发明的电子设备示意图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

在本文中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

实施例一

如图1所示,本实施例提供一种离线量化参数加注方法,包括:

新增神经网络加速器模型转换工具的开发者加注接口,所述开发者加注接口,用于离线加注离线量化参数。

具体的,在计算机视觉、深度学习的语境下,模型特指卷积神经网络,用于提取图像/视频视觉特征。

其中,量化是指将信号的连续取值近似为有限多个离散值的过程。可理解成一种信息压缩的方法。在计算机系统上考虑这个概念,一般用“低比特”来表示。也有人称量化为“定点化”,但是严格来讲所表示的范围是缩小的。定点化特指scale为2的幂次的线性量化,是一种更加实用的量化方法。

卷积神经网络具有很好的精度,甚至在一些任务上比如人脸识别、图像分类,已经超越了人类精度。但其缺点也比较明显,具有较大的参数量,计算量,以及内存占用。而模型量化可以缓解现有卷积神经网络参数量大、计算量大、内存占用多等问题,具有为神经网络压缩参数、提升速度、降低内存占用等“潜在”优势。

另外,由于模型量化是一种近似算法方法,精度损失是一个严峻的问题,大部分的研究都在关注这一问题。模型量化还有一个潜在的好处是降低运行时内存占用,这个特性无论是在移动端还是云端都是具有现实意义的。如果降低内存占用,可以得到如下好处:1、降低访存量,存在提升速度的可能。2、在同样硬件环境下,同时处理更多视频或者视频路数。3、训练更大的模型。

在本实施例中,通过对神经网络加速器的模型转换工具新增开发者加注接口,实现将精度更优的量化参数传入量化模型转换的过程,从而解决神经网络加速器的模型转换工具无法进行精度调优的问题。

S100通过神经网络加速器模型转换工具,获取待量化浮点网络模型的存储文件。

具体的,在现有技术中一般是通过神经网络加速器模型转换工具直接在线训练模型,并获得训练后的整型网络模型。在此期间不能进行人为干预,因此网络模型在实际应用场景中并不准确。

示例性的,在实际场景中,比如工程师到了教室,将经过量化的模型部署到边缘设备上,然后在现场检查边缘设备的实际效果,并根据实际效果去手动调整量化参数,直到模型的效果达到目标程度。

在本实施例中,通过新增离线加注接口,神经网络加速器模型转换工具离线获取待量化的浮点网络模型的存储文件,避免直接在线训练模型。

S200通过量化参数离线加注模块,解析离线量化参数文件,以获得离线量化参数。

具体的,通过一个量化参数离线加注模块,解析当前场景下的离线量化参数文件,获取对应场景的离线量化参数。

S300通过所述量化参数离线加注模块,根据层间量化参数存储表达格式,将所述离线量化参数加注至所述神经网络加速器模型转换工具,以量化所述待量化浮点网络模型。

具体的,神经网络加速器模型转换工具根据解析后的离线量化参数文件对浮点网络模型进行量化,量化后输出整型网络模型。

示例性的,如图4所示,在量化参数离线加注模块解析获取了对应场景的离线量化参数后,通过离线加注接口,基于图4中的层间量化参数存储表达格式将离线量化参数传输至神经网络加速器模型转换工具,使得神经网络加速器模型转换工具的离线训练模型过程更加准确、灵活,符合实际场景的需求。

在本实施例中,根据本发明的一种离线量化参数加注方案,包括间量化参数存储表达格式、量化参数离线加注模块。

其中,层间量化参数存储表达格式:用以规范化待量化的网络模型中每一层输出数据量化参数、权重量化参数、偏移量量化参数的存储格式。量化参数离线加注模块:通过对原有量化工具加注已有的层间量化参数存储表达格式文件,实现调优量化模型精度。

实施例二

基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,本实施例提供一种离线量化参数加注方法,具体包括步骤:

所述通过量化参数离线加注模块,解析离线量化参数文件,以获得离线量化参数,包括:

通过量化参数离线加注模块加载所述离线量化参数文件;通过量化参数离线加注模块解析所述离线量化参数文件,以获得解析后的所述离线量化参数;其中,所述离线量化参数包括数据量化参数、权重量化参数、偏移量量化参数。

所述通过神经网络加速器模型转换工具,获取待量化浮点网络模型的存储文件,包括:

启动所述神经网络加速器模型转换工具;通过所述神经网络加速器模型转换工具,加载待量化的浮点网络模型,以获取所述待量化浮点网络模型的存储文件。

所述通过所述神经网络加速器模型转换工具,加载待量化的浮点网络模型,以获取所述待量化浮点网络模型的存储文件,包括:

从所述待量化的浮点网络模型的文件路径,读取所述待量化的浮点网络模型的原始训练框架的网络模型文件;通过所述网络模型文件的网络结构参数,构造网络模型计算图;将所述网络模型计算图的权重、偏移量存储为浮点数据类型,以得到所述待量化浮点网络模型的存储文件。

所述通过所述量化参数离线加注模块,根据层间量化参数存储表达格式,将所述离线量化参数加注至所述神经网络加速器模型转换工具,以量化所述待量化浮点网络模型,包括:

根据所述离线量化参数,将所述浮点数据类型的权重、偏移量量化为整型数据类型的权重、偏移量,以量化所述待量化浮点网络模型,得到整型网络模型。

示例性的,如图3所示,

本实施例具体包括以下步骤:

Step1:启动神经网络加速器模型转换工具,加载浮点网络模型。

Step2:启动量化参数离线加注模块,加载离线量化参数文件。

Step3:量化参数离线加注模块完成离线量化参数解析,按照图4中的格式,将数据量化参数、权重量化参数、偏移量量化参数依次传入神经网络加速器模型转换工具。

其中,Step3具体包括步骤:

神经网络加速器模型转换工具工作原理如下:

1.从指定文件路径读取原始训练框架(例如Caffe、MXNet、TensorFlow)生成的网络模型文件。

2.通过分析原始训练框架生成的网络模型文件中的网络结构参数,构造出私有的网络模型计算图。

3.网络模型计算图中的权重Weight、偏移量Bias存储格式为Float32,表示为Weight_fp32和Bias_fp32。

Step4:使用量化参数对浮点模型进行量化操作。

具体的,Step4具体包括:

1.通过导入的离线量化参数文件对Step3中的Float32格式的Weight、Bias量化成Int8、Int32的整型数据类型。

2.量化公式如下:

Weight_int8=Clamp(Round(Weight_fp32/Scale_weight),-127,127)

Bias_int32=Round(Bias_fp32/(Scale_weight*Scale_Activation))

Step5:输出整型模型文件。

在本实施例中,在量化参数离线加注模块解析获取了对应场景的离线量化参数后,通过离线加注接口,基于层间量化参数存储表达格式将离线量化参数传输至神经网络加速器模型转换工具,使得神经网络加速器模型转换工具的离线训练模型过程更加准确、灵活,符合实际场景的需求。

实施例三

基于上述实施例,在本实施例中与上述实施例相同的部分就不一一赘述了,如图2所示,本实施例提供一种离线量化参数加注装置,包括:

获取模块201,用于通过神经网络加速器模型转换工具,获取待量化浮点网络模型的存储文件。

量化参数离线加注模块202,用于通过量化参数离线加注模块,解析离线量化参数文件,以获得离线量化参数。

层间加注模块203,用于通过所述量化参数离线加注模块,根据层间量化参数存储表达格式,将所述离线量化参数加注至所述神经网络加速器模型转换工具,以量化所述待量化浮点网络模型。

具体的,还包括:离线加注接口,用于新增神经网络加速器模型转换工具的开发者加注接口,所述开发者加注接口,用于离线加注离线量化参数。

在本实施例中,获取模块包括神经网络加速器模型转换工具。

优选的,所述量化参数离线加注模块,还用于:

通过量化参数离线加注模块加载所述离线量化参数文件;

通过量化参数离线加注模块解析所述离线量化参数文件,以获得解析后的所述离线量化参数;

其中,所述离线量化参数包括数据量化参数、权重量化参数、偏移量量化参数。

优选的,所述获取模块,还用于:

启动所述神经网络加速器模型转换工具;

通过所述神经网络加速器模型转换工具,加载待量化的浮点网络模型,以获取所述待量化浮点网络模型的存储文件。

优选的,所述获取模块,还用于:

从所述待量化的浮点网络模型的文件路径,读取所述待量化的浮点网络模型的原始训练框架的网络模型文件;

通过所述网络模型文件的网络结构参数,构造网络模型计算图;

将所述网络模型计算图的权重、偏移量存储为浮点数据类型,以得到所述待量化浮点网络模型的存储文件。

优选的,所述层间加注模块,还用于:

根据所述离线量化参数,将所述浮点数据类型的权重、偏移量量化为整型数据类型的权重、偏移量,以量化所述待量化浮点网络模型,得到整型网络模型。

在本实施例中,在量化参数离线加注模块解析获取了对应场景的离线量化参数后,通过离线加注接口,基于层间量化参数存储表达格式将离线量化参数传输至神经网络加速器模型转换工具,使得神经网络加速器模型转换工具的离线训练模型过程更加准确、灵活,符合实际场景的需求。

另一方面,如图5所示,本发明提供一种电子设备100,包括处理器110、存储器120,其中,存储器120,用于存放计算机程序121;处理器110,用于执行存储器120上所存放的计算机程序121,实现上述所对应方法实施例中的方法。

所述电子设备100可以为桌上型计算机、笔记本、掌上电脑、平板型计算机、手机、人机交互屏等设备。所述电子设备100可包括,但不仅限于处理器110、存储器120。本领域技术人员可以理解,图5仅仅是电子设备100的示例,并不构成对电子设备100的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,示例性的:电子设备100还可以包括输入/输出接口、显示设备、网络接入设备、通信总线、通信接口等。通信接口和通信总线,还可以包括输入/输出接口,其中,处理器110、存储器120、输入/输出接口和通信接口通过通信总线完成相互间的通信。该存储器120存储有计算机程序121,该处理器110用于执行存储器120上所存放的计算机程序121,实现上述所对应方法实施例中的方法。

所述处理器110可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器120可以是所述电子设备100的内部存储单元,示例性的:电子设备的硬盘或内存。所述存储器也可以是所述电子设备的外部存储设备,示例性的:所述电子设备上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器120还可以既包括所述电子设备100的内部存储单元也包括外部存储设备。所述存储器120用于存储所述计算机程序121以及所述电子设备100所需要的其他程序和数据。所述存储器还可以用于暂时地存储已经输出或者将要输出的数据。

通信总线是连接所描述的元素的电路并且在这些元素之间实现传输。示例性的,处理器110通过通信总线从其它元素接收到命令,解密接收到的命令,根据解密的命令执行计算或数据处理。存储器120可以包括程序模块,示例性的,内核(kernel),中间件(middleware),应用程序编程接口(Application Programming Interface,API)和应用。该程序模块可以是有软件、固件或硬件、或其中的至少两种组成。输入/输出接口转发用户通过输入/输出接口(示例性的,感应器、键盘、触摸屏)输入的命令或数据。通信接口将所述电子设备100与其它网络设备、用户设备、网络进行连接。示例性的,通信接口可以通过有线或无线连接到网络以连接到外部其它的网络设备或用户设备。无线通信可以包括以下至少一种:无线保真(WiFi),蓝牙(BT),近距离无线通信技术(NFC),全球卫星定位系统(GPS)和蜂窝通信等等。有线通信可以包括以下至少一种:通用串行总线(USB),高清晰度多媒体接口(HDMI),异步传输标准接口(RS-232)等等。网络可以是电信网络和通信网络。通信网络可以为计算机网络、因特网、物联网、电话网络。电子设备100可以通过通信接口连接网络,电子设备100和其它网络设备通信所用的协议可以被应用、应用程序编程接口(API)、中间件、内核和通信接口至少一个支持。

另一方面,本发明提供一种存储介质,所述存储介质中存储有至少一条指令,指令由处理器加载并执行以实现上述方法对应实施例所执行的操作。示例性的,存储介质可以是只读内存(ROM)、随机存取存储器(RAM)、只读光盘(CD-ROM)、磁带、软盘和光数据存储设备等。

它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述或记载的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/电子设备和方法,可以通过其他的方式实现。示例性的,以上所描述的装置/电子设备实施例仅仅是示意性的,示例性的,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,示例性的,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性、机械或其他的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可能集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序121发送指令给相关的硬件完成,所述的计算机程序121可存储于一存储介质中,该计算机程序121在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序121可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述存储介质可以包括:能够携带所述计算机程序121的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,示例性的,在某些司法管辖区,根据立法和专利实践,计算机可读的存储介质不包括电载波信号和电信信号。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 离线量化参数加注方法、装置、电子设备和存储介质
  • 质量化参数确定方法、装置、电子设备及存储介质
技术分类

06120112964881