CN113159276A - 模型优化部署方法、系统、设备及存储介质 - Google Patents
模型优化部署方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN113159276A CN113159276A CN202110248323.2A CN202110248323A CN113159276A CN 113159276 A CN113159276 A CN 113159276A CN 202110248323 A CN202110248323 A CN 202110248323A CN 113159276 A CN113159276 A CN 113159276A
- Authority
- CN
- China
- Prior art keywords
- model
- neural network
- convolution
- pruning
- optimization
- 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.)
- Granted
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 100
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000013527 convolutional neural network Methods 0.000 claims abstract description 107
- 238000013528 artificial neural network Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 30
- 230000003044 adaptive effect Effects 0.000 claims abstract description 11
- 238000013139 quantization Methods 0.000 claims description 75
- 238000013138 pruning Methods 0.000 claims description 68
- 238000010606 normalization Methods 0.000 claims description 23
- 238000012549 training Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 9
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004088 simulation Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 6
- 238000012805 post-processing Methods 0.000 claims description 5
- 238000007781 pre-processing Methods 0.000 claims description 5
- 238000012795 verification Methods 0.000 claims description 4
- 238000012421 spiking Methods 0.000 claims description 3
- 238000004364 calculation method Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000001514 detection method Methods 0.000 description 5
- 210000002569 neuron Anatomy 0.000 description 5
- 230000004927 fusion Effects 0.000 description 4
- 239000012528 membrane Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 241000197727 Euscorpius alpha Species 0.000 description 2
- 244000141353 Prunus domestica Species 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
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
- G06N3/045—Combinations of networks
-
- 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
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
Abstract
本发明公开一种模型优化部署方法、系统、设备及存储介质,其中模型优化部署方法,包括:对卷积神经网络进行模型优化,获取适配脉冲神经网络的卷积神经网络;对优化后的卷积神经网络的参数进行编译,获取在脉冲神经网络芯片上可运行的参数配置文件;加载参数配置文件以对输入的待处理数据进行推理计算处理,获取数据处理结果。本发明可以保持卷积神经网络的高精度,又能融合SNN的高效低功耗,便于在终端平台上进行部署。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种模型优化部署方法、系统、设备及存储介质。
背景技术
卷积神经网络(Convolutional Neural Network,简称CNN)由于其具有相对成熟的网络结构和训练算法,以及高性能计算平台与大规模训练数据的支持,已被应用于多个领域。但是面对复杂任务,高精度的CNN往往复杂度较高,因此,在终端平台算力、内存、功耗、成本等限制下,高精度的CNN终端部署仍存在巨大挑战。
相比而言,脉冲神经网络(Spiking Neural Network,简称SNN)直接利用神经元的脉冲发放时间作为其输入与输出,充分利用时间信息,具备脉冲稀疏性,同时,脉冲神经元接收到脉冲时,将累计输入至膜电位,当膜电位达到阈值时才进行脉冲发放,即为事件驱动型。由于SNN具备脉冲稀疏性和其本身为事件驱动型,其可以更加高效地进行信息处理,实现低延时、低功耗。但是,SNN在较复杂任务上精度较低,将其直接部署到终端平台也存在问题,因此,如何将CNN与SNN进行适配融合既满足高精度要求又方便部署于终端平台是个亟需解决的技术问题。
发明内容
本发明提供一种模型优化部署方法、系统、设备及存储介质,用以提供一种CNN与SNN进行适配融合的模型优化部署方法,以获得既满足高精度且高效的要求又方便部署于终端平台的解决方案。
本发明提供的一种模型优化部署方法,包括:
对卷积神经网络进行模型优化,获取适配脉冲神经网络的卷积神经网络;
对优化后的卷积神经网络的参数进行编译,获取在脉冲神经网络芯片上可运行的参数配置文件;
加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行推理计算处理。
本发明还提供一种模型优化部署系统,包括:
模型优化模块,用于对卷积神经网络进行模型优化,获取适配脉冲神经网络的卷积神经网络;
参数编译模块,用于对优化后的卷积神经网络的参数进行编译,获取在脉冲神经网络芯片上可运行的参数配置文件;以及
系统部署模块,用于加载参数配置文件以对输使脉冲神经网络芯片入的待处理数据进行推理计算处理。
本发明还提供一种电子设备,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序;
其中,所述处理器运行所述计算机程序时实现如上述的模型优化部署方法。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被执行如上述的模型优化部署方法。
本发明先对CNN做适配SNN的模型优化,然后由CNN转换为SNN并部署。通过对卷积神经网络进行模型优化,使得优化后的CNN既能保持卷积神经网络的高精度,又能融合SNN的高效低功耗,从而便于在终端平台上进行部署;通过对优化后的卷积神经网络的参数进行编译,形成可运行的参数配置文件,使得图像识别数据处理时SNN芯片能够自动加载模型,并自动运行,实现软件与硬件的无缝对接,从而便于提升终端平台的运行速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种模型优化部署方法的流程图;
图2为本发明实施例中CNN参数编译的具体流程图;
图3为本发明实施例中量化对模型优化的流程图;
图4为本发明实施例中对分组卷积的模型进行剪枝的流程图;
图5为本发明实施例中确定冗余卷积核并对其进行剪枝的流程图;
图6为本发明实施例中详细的剪枝流程图;
图7为本发明实施例中剪枝对模型优化的流程图;
图8为本发明实施例提供的一种模型优化部署系统的结构示意图;
图9为本发明实施例提供的一套SNN软件开发工具包的示意框图;
图10为本发明实施例提供的模型优化部署系统的全流程示意图;
图11为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
CNN模型由于其神经元持续激活工作的特点,导致其难以在取得高精度的同时满足低延时、低功耗。而SNN尽管具有低延时、低功耗等诸多优势,但也存在许多挑战,如缺乏有效的训练方法、在较复杂任务上精度较低、难以部署至终端平台等。本发明正是基于上述这些问题对CNN模型进行了大量优化以使其适配于SNN,从而获得高精度且高效的SNN,而且方便部署至终端平台。
基于本发明提出的模型优化部署方法,最终形成一套SNN软件开发工具包(SNN-Software Development Kit,SNN-SDK),其由模型优化、参数编译、系统部署几个部分组成。
为使本发明的技术方案更加清楚,以下结合附图对本发明的实施例进行详细说明。
本发明实施例提供一种模型优化部署方法,用于图像识别检测处理中使用的神经网络模型,其执行主体为模型优化部署系统,该系统可以设置在电子设备中,该电子设备可以是任意的计算机设备或其他终端设备。
图1为本发明实施例提供的一种模型优化部署方法的流程图,如图1所示,本实施例的方法,包括:
步骤101、对卷积神经网络进行模型优化,获取适配脉冲神经网络的卷积神经网络。
对卷积神经网络进行优化可以基于优化目标不同而选择不同的优化策略,本实施例中优化CNN的目的主要是适配SNN,以使其优化后的CNN既能保持卷积神经网络的高精度,又能融合SNN的高效低功耗。
考虑到优化CNN模型既不降低精度,又能够适配SNN,本发明实施例中通过多种优化措施对卷积神经网络进行优化,如分组卷积、剪枝、图优化及量化等,每种措施其目标均是保持精度要求前提下尽量降低参数量和计算量,从而保证模型的高效且低功耗,便于部署至SNN。本发明实施例后面将对这些优化措施进行分别详细分析说明。
步骤102、对优化后的卷积神经网络的参数进行编译,获取在脉冲神经网络芯片上可运行的参数配置文件。
在步骤101中,通过模型优化将结构复杂、运算量大的普通CNN转化为满足高精度要求而又运算量大幅降低的适配SNN的CNN。由于优化CNN模型的目标是CNN的推理运算能够在脉冲神经网络芯片上运行,所以,在获得适配SNN的CNN模型后,为使其能够直接在SNN芯片上运行,在本步骤中还需要将其神经网络参数进行编译,形成参数配置文件,以保证在SNN芯片上进行数据处理时能够正确自动运行。
图2为本发明实施例中CNN参数编译的具体流程图,如图2所示,对CNN参数编译的操作可包括:
步骤1021、将优化后的卷积神经网络的参数映射到拓扑结构相同的脉冲神经网络。
卷积神经网络的参数主要是模型权重和偏置,SNN的参数主要包括:权值、膜电位泄漏、膜电位阈值、复位电压等。参数映射之后并进行仿真验证以确保转换正确。
步骤1022、对映射后的脉冲神经网络参数进行仿真验证。
步骤1023、将验证正确的脉冲神经网络参数转换成脉冲神经网络芯片上可运行的参数配置文件。
形成参数配置文件主要用于SNN芯片进行数据处理时直接调用自动执行。
步骤103、加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行推理运算处理。
当有输入的原始数据,如有输入的图像需要识别时,SNN芯片通过加载事先生成的参数配置文件就可以对数据进行推理运算,获取运算识别结果。
实际应用中,由于脉冲神经网络芯片主要完成图像目标检测模型的推理运算,其作用主要是对模型推理运算进行加速,而图像原始数据的数据预处理、数据格式转换、数据传输、数据后处理及结果输出等可以由目标检测系统中的主控完成。因此,在加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行模型推理运算处理之前,还包括:对输入的原始数据进行预处理,并进行格式转换,获取待处理数据的操作;在加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行模型推理运算处理之后,还包括:将推理运算处理获得的数据进行数据后处理,获取数据处理结果,即获取图像识别中的物体种类、位置等。
本发明实施例通过对卷积神经网络进行模型优化,使得优化后的CNN既能保持卷积神经网络的高精度,又能融合SNN的高效低功耗,从而便于在终端平台上进行部署;通过对优化后的卷积神经网络的参数进行编译,形成可运行的参数配置文件,使得图像识别数据处理时SNN芯片能够自动加载模型,并自动运行,实现软件与硬件的无缝对接,从而便于提升终端平台的运行速度。该模型优化部署方法及提供的SDK流程简洁、使用方便,适配多种图像识别模型,具备较强灵活性、通用性。
实际应用中,不同的模型优化策略及优化方法对CNN适配SNN有重要影响,其优化后的性能也不同。本发明实施例中,采用分组卷积、剪枝、图优化及量化等CNN模型的优化方法,这些优化方法可以单独使用,如分组卷积替换、剪枝等,也可以组合使用,本发明对此不做限定。下面对这些本发明采取的优化方法进行详细分析说明。
在实际应用中,由于SNN对卷积核的尺寸有限制,所以可以采用分组卷积以替代标准卷积以减小单个卷积核的尺寸。
针对CNN中一层普通空间卷积层,其参数量为:
n×c×h×w
其中,n表示卷积核数量,c、h、w分别表示其通道数、高度、宽度。
普通空间卷积层输出特征图尺寸为:
n×H×W
其中,n表示特征图通道数,H、W分别表示其高度、宽度。
普通空间卷积层计算量为:
n×H×W×c×h×w
针对CNN中一层分组卷积层,其参数量为:
其中,g表示分组数,其他字母含义同普通空间卷积,相当于卷积核只是原来的1/g,通过设置分组数可以控制卷积核大小使其满足SNN对卷积核的要求。
分组卷积层输出特征图尺寸与普通空间卷积相同,则其计算量为:
由参数量和计算量的结果可知,将CNN中的普通空间卷积用分组卷积替代,参数量和计算量均有g倍缩小,而且满足SNN芯片对单个卷积核尺寸的限制,因此通过用分组卷积代替标准卷积的结构调整,得到含分组卷积的CNN,实现了参数量和计算量的大幅度降低,即实现了网络的轻量高效化。
卷积神经网络一般都会包含输入层、输出层和中间层,实际应用中为了加速网络训练并提升训练精度,一般会对中间层特征进行归一化处理,即批归一化层(BatchNormalization,简称BN)。为了适配SNN并降低模型复杂度,需要将批归一化层融合至卷积层,即进行图优化。
对于批归一化层BN有:
输入zin为:
zin=wx+b
其中,w和b分别表示卷积层的权重和偏置
变换得:
则有:
zout=wfusex+bfuse
即:
其中,wfuse和bfuse分别表示BN融合后卷积层的权重和偏置,即完成图优化,得到BN融合后的CNN,通过图优化将BN融合至卷积层不仅降低计算量、访存时间、内存占用,而且也使得BN在SNN芯片上可以实现。
上述的卷积神经网络的卷积运算过程中模型均为浮点模型,为使模型能够适配SNN,本发明实施例将浮点模型量化为低位宽模型,以满足SNN模型参数脉冲离散化的要求。
卷积神经网络由于参数量和计算量大,不易在移动设备上部署,而定点运算比浮点运算在单位时间内能处理更多数据,同时,量化后的模型还可以减少存储空间,通过量化简化减少神经网络模型数据,能够减少对内存和电量的消耗,从而更适于部署于移动硬件平台。
高位量化精度较高,低位量化占用空间和运算复杂度更小,由于不同层级对精度要求不同,因此不同层级可以采用不同的位宽进行量化。如首尾层一般敏感度较高可采用高位量化,而中间层采用低位量化。无论是高位量化还是低位量化都是用较少内存空间的形式进行数据存储。
高位量化过程有:
其中,r表示浮点实数,q表示量化后的定点整数,S表示比例因子,Z表示零点,round表示取整操作。
S和Z有:
其中,rmax和rmin分别表示r的最大和最小值,qmax和qmin分别表示q的最大和最小值。
低位量化过程有:
二值量化:
其中,W表示浮点实数,B表示二值量化后的值。
为减小量化精度损失,二值量化后,会通过缩放因子α来减小量化前后的差距。
其有:
W≈αB
α=E(|W|)
即α为原始浮点实数绝对值的均值。
三值量化:
其中,W表示浮点实数,T表示三值量化后的值,Δ表示阈值。
Δ≈0.7·E(|W|)
三值量化后,也存在缩放因子α:
W≈αT
其中,IΔ={i||Wi|>Δ},其表示绝对值大于Δ的那部分W,|IΔ|表示该部分W的个数,即α为Wi中绝对值大于Δ那部分值绝对值的均值。
由于缩放因子α对模型精度有较大影响,需要另行处理以适配SNN芯片。
本发明实施例中,通过将缩放因子α跟随BN层一起融合至卷积层,因此需要先量化再图优化(BN融合)。
对卷积-BN-二值激活结构,有如下公式一:
其中,w为上述三值或二值量化后的权重,α为缩放因子,其余参数同前述图优化部分。
当γ>0时,公式一变换得到:
化简后得到:
则有:
zout=sign(wfusex+bfuse)
当γ<0时,公式一变换得:
化简后得到:
则有:
zout=sign(wfusex+bfuse)
综上得到:
其中,wfuse和bfuse分别表示BN融合后卷积层的权重和偏置,即缩放因子α跟随BN层一起融合进了卷积层。因此,对于需要低位宽的二值或三值量化时,可以先进行量化再进行图优化,以便于将缩放因子α及BN层一起融合进卷积层以适配SNN芯片。
通过上述对神经网络结构进行的分组卷积替换调整、图优化及量化实现了从CNN向SNN适配的模型优化过程,得到了适配SNN的CNN,该模型具备CNN的高精度特征,同时融合了SNN的低功耗和低延时特征。
本发明实施例中,对卷积神经网络进行模型优化,主要包括:将卷积神经网络模型结构中的标准卷积用分组卷积进行替代的结构调整操作;对模型进行图优化以将模型中的批归一化层融合至卷积层,以及对图优化后的模型进行高位量化;或者对模型进行图优化以将模型中用于调整低位量化误差的缩放因子及批归一化层融合至卷积层。
具体应用中,针对CNN的不同层可以进行混合精度量化。如首尾层进行高位量化,先做图优化将BN层融合至卷积层,然后对融合后的模型参数进行高位量化;中间层进行低位量化,先对模型参数进行低位量化,然后做图优化将低位量化中的缩放因子α跟随BN层一起融合至卷积层,这样可以充分利用量化位宽,避免出现量化位宽冗余或不足的情况,同时BN和低位量化的缩放因子也在图优化中进行了融合,以降低模型复杂度并适配SNN,有利于部署于终端平台。
图3为本发明实施例中量化对模型优化的流程图,如图3所示,输入图优化后的浮点模型,首先根据层级或需求确定模型的每一层需要高位量化还是低位量化,如是高位量化,则再确定是训练中量化还是训练后量化,由于训练中量化是在模型训练中同时进行量化,可以通过训练去适应量化,抑制量化误差,其量化参数确定方法有基于最大最小值、基于滑动平均最大最小值和基于直方图的统计等,量化精度一般较高但所需时间较长;而训练后量化,则无需训练,在模型推理的过程中通过量化校准方法,如基于信息熵、基于均方误差和基于比例的校准等进行量化,所需时间短但量化精度一般较低。如是低位量化,基于前面分析可知,需要先量化再图优化,因此在确定需要低位量化时,可以对图优化进行恢复,再进行训练中量化,量化后再进行图优化将缩放因子α跟随BN层一起融合至卷积层。如图3所示,模型量化是一个反复调优的过程,经过上述低位或高位初步量化后,根据实际需求判断是否量化完成,即量化模型精度和延时等综合最优,若量化未完成,则进行量化调优进一步选择量化策略直至量化完成,最终输出量化后适配SNN的CNN。
在实际应用中,为进一步减少CNN模型参数及计算量,还可以通过剪枝方法以进一步轻量化模型。剪枝的目的是去掉一些不重要的神经元、连接、通道等,对网络结构的剪枝,去掉不重要的连接,简化网络模型复杂度,实现对模型的压缩。本发明实施例中的剪枝步骤主要包括:稀疏训练、剪枝操作和微调。具体来说,本发明实施例是在将对模型进行图优化之前,在保持分组卷积结构的情况下,对分组卷积替换后的模型进行剪枝。
图4为本发明实施例中对分组卷积的模型进行剪枝的流程图,如图4所示,剪枝操作,具体包括:
步骤401、对含有分组卷积的卷积神经网络进行稀疏训练。
输入含分组卷积的CNN,先对其进行稀疏训练,即对BN层缩放因子γ施加L1正则化,可调整稀疏率以达到合适的稀疏程度。
批归一化层BN有:
正则化有:
其中,L表示总体目标函数,x和y分别表示训练输入和目标,W表示可训练权重,第一求和项表示正常训练损失,g(γ)表示正则化项(稀疏化),λ表示正则因子(稀疏率)。
L1正则化有:
g(s)=|s|
其中,s表示施加正则的项,这里即为γ。
通过调整稀疏率λ,达到合适的稀疏程度,然后进行剪枝,可调整剪枝率以调整剪枝程度。
步骤402、根据批归一化层的缩放因子和剪枝率确定冗余卷积核并对其进行剪枝。
本发明实施例中采用BN层缩放因子γ来衡量CNN中卷积核的重要程度,将不重要的卷积核(其对应的缩放因子γ较小)剪掉,同时保证其分组卷积结构。
图5为本发明实施例中确定冗余卷积核并对其进行剪枝的流程图,如图5所示,确定冗余卷积核并对其进行剪枝的过程,具体包括:
步骤4021、对模型的所有批归一化层的缩放因子排序;
步骤4022、根据预设的剪枝率确定对应的缩放因子阈值;
步骤4023、基于缩放因子阈值对各层卷积核进行临时剪枝;
步骤4024、若临时剪枝后的模型仍保持分组卷积结构,则直接输出,若临时剪枝后的模型不能保持分组卷积结构,则对临时剪枝后的模型进行调整直至模型能够保持分组卷积结构后再输出。
图6为本发明实施例中详细的剪枝流程图,如图6所示,具体操作为:输入稀疏训练后的模型,对整个模型所有BN层的γ进行排序,然后给定剪枝率,确定其对应的阈值,再按此阈值对各层卷积核进行临时剪枝,之后判断是否能保持分组卷积结构,若不能则进行调整并完成正式剪枝(针对一层卷积层,先得到本层和下层分组数的最小公倍数,将临时剪枝后的剩余卷积核个数与该最小公倍数的整数倍数值进行比较,取得最接近的整数倍数值,即为正式剪枝后本层应该剩余的卷积核个数。若临时剪枝得到剩余卷积核个数比正式剪枝的小,则在本层被临时剪掉的卷积核中恢复相对更重要(γ较大)的卷积核;若临时剪枝得到剩余卷积核个数比正式剪枝的大,则在本层被临时保留的卷积核中剪掉相对更次要(γ较小)的卷积核。通过上述剪枝方法可以最大程度实现模型的轻量化。
步骤403、根据精度要求,对剪枝后的模型进行微调。
剪枝步骤后,可以对剪枝后的模型进行微调,以减小剪枝带来的精度损失,恢复精度。一般情况下,将非重要的权重去掉之后,网络精度会下降。但是,去掉非重要权重之后,网络稀疏性增加,减少了网络的过拟合,在经过微调之后,网络精度也会有所提升。
以上过程可重复进行,直到达到合适的剪枝程度,完成剪枝后,得到剪枝后仍含分组卷积的CNN。
图7为本发明实施例中剪枝对模型优化的流程图,如图7所示的剪枝优化过程:将分组卷积结构调整优化后的模型进行稀疏训练,训练完成后进行剪枝,剪枝后进行微调,可以为多次反复微调直至恢复需要的精度,确定完成了剪枝优化操作,输出剪枝优化后仍含分组卷积的模型以进行下一步的图优化操作。
本发明实施例中通过增设剪枝操作进一步优化模型,以进一步减小模型的参数量和计算量,且在剪枝完成后仍保证其分组卷积的高效模型结构。
图8为本发明实施例提供的一种模型优化部署系统的结构示意图,如图8所示,本实施例的系统包括:模型优化模块801、参数编译模块802和系统部署模块803。其中,模型优化模块801,用于对卷积神经网络进行模型优化,获取适配脉冲神经网络的卷积神经网络;参数编译模块802,用于对优化后的卷积神经网络的参数进行编译,获取在脉冲神经网络芯片上可运行的参数配置文件;系统部署模块803,用于加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行推理运算处理。
本实施例中模型优化模块801对CNN进行模型优化以使其适配SNN,参数编译模块802对优化后的CNN进行参数编译,生成参数配置文件,系统部署模块803对输入的图像数据进行识别检测处理时,加载参数配置文件,通过SNN芯片对数据进行加速处理,获取数据处理结果。本实施例的系统可用于执行上述方法实施例的步骤,其工作原理及效果类似,不再赘述。
在一实施例中,模型优化模块801可以包括:结构调整子模块、图优化子模块及量化子模块,结构调整子模块,用于将卷积神经网络的模型结构中标准卷积用分组卷积进行替代;图优化子模块,用于将模型中的批归一化层融合至卷积层,或者将模型中用于调整低位量化误差的缩放因子及批归一化层融合至卷积层;量化子模块,用于对将模型中的批归一化层融合至卷积层的模型进行高位量化;或者用于在将模型中用于调整低位量化误差的缩放因子及批归一化层融合至卷积层之前,对模型中的权重进行低位量化。
在另一实施例中,模型优化模块801还可以包括剪枝子模块,用于在保持分组卷积结构的情况下,对分组卷积的模型进行剪枝优化处理。
上述各个子模块可用于执行上述方法实施例中相应的操作步骤,详细内容参见方法实施例。
另外,参数编译模块802具体可用于将优化后的卷积神经网络的参数映射到拓扑结构相同的脉冲神经网络;对映射后的脉冲神经网络参数进行仿真验证;以及将验证正确的脉冲神经网络参数转换成脉冲神经网络芯片上可运行的参数配置文件。
系统部署模块803具体可用于对输入的原始数据进行预处理,并进行格式转换,获取待处理数据;加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行推理运算处理;以及将推理运算处理获得的数据进行数据后处理,获取数据处理结果。
图9为本发明实施例提供的一套SNN软件开发工具包的示意框图,如图9所示,该软件开发工具包主要包括:模型优化、参数编译和系统部署三部分,模型优化部分主要包括结构调整、剪枝、量化及图优化,其功能主要为以适配SNN为目标对CNN模型提供多层次的优化以使其高效的同时又保持高精度;参数编译包括参数映射、参数仿真和配置文件生成,其主要功能是实现CNN模型向SNN模型的无缝衔接;系统部署包括主控和加速器,其主要功能是使用上述的优化模型实现对输入图像的识别检测。
图10为本发明实施例提供的模型优化部署系统的全流程示意图,如图10所示,首先输入初始CNN模型,对其进行模型优化,包括结构调整、剪枝、量化、图优化等,生成适配SNN的CNN;然后对适配SNN的CNN进行参数编译,包括参数映射、参数仿真、配置文件生成等,生成SNN芯片上可运行的配置文件;最后进行系统部署,包括主控上的数据预处理、数据格式转换、数据传输、数据后处理、结果输出和加速器上的加载模型参数配置文件、模型推理运算等。该示例示意图中的操作步骤可由图9所示的开发工具包完成。
图11为本发明实施例提供的一种电子设备的结构示意图。如图11所示,该设备100包括:处理器1001,存储器1002,以及存储在存储器1002上并可在处理器1001上运行的计算机程序。
其中,处理器1001运行计算机程序时实现上述任一方法实施例提供的模型优化部署方法。
该电子设备可以是服务器或其他可实现的计算机设备或其他终端设备
本发明实施例还提供一种计算机可读存储介质,该可读存储介质如:ROM/RAM、磁碟、光盘等,计算机可读存储介质存储有计算机程序,计算机程序可被终端设备、计算机或服务器等硬件设备执行上述的模型优化部署方法。
本发明实施例的电子设备及计算机可读存储介质都能够实现上述任一实施例提供的方法,且能够达到相同的技术效果,在此不再赘述。
本发明提供的模型优化部署方法及提供的SDK(模型优化、参数编译、系统部署)流程简洁、使用方便,适配多种图像识别模型,具备较强灵活性、通用性。
本发明提供的模型优化部署方法模型优化部分综合多种优化策略及方法(结构调整、剪枝、量化、图优化),可根据实际应用场景灵活配置以取得特定场景限制下高精度且高效的模型。该优化后的模型相比于原CNN模型,在较小精度损失下,参数量、计算量显著降低;相比于现有方法压缩的CNN,在SNN芯片上部署时具有更低的延时与功耗;相比于现有方法得到的SNN,相同模型体积下可取得更高精度。
本发明提供的模型优化部署方法参数编译部分(参数映射、参数仿真、配置文件生成)使CNN参数完全映射至SNN,降低CNN到SNN转换的精度损失。
本发明提供的模型优化部署方法系统部署部分采用主控和加速器(SNN芯片)的组成,根据实际任务也可灵活配置,让主控和加速器达到最优的功能分配与组合。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (13)
1.一种模型优化部署方法,其特征在于,包括:
对卷积神经网络进行模型优化,获取适配脉冲神经网络的卷积神经网络;
对优化后的卷积神经网络的参数进行编译,获取在脉冲神经网络芯片上可运行的参数配置文件;
加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行推理运算处理。
2.根据权利要求1所述的方法,其特征在于,所述对卷积神经网络进行模型优化,包括:
将卷积神经网络的模型结构中标准卷积用分组卷积进行替代;
对模型进行图优化以将模型中的批归一化层融合至卷积层,以及对图优化后的模型进行高位量化;或者对模型进行图优化以将模型中用于调整低位量化误差的缩放因子及批归一化层融合至卷积层。
3.根据权利要求2所述的方法,其特征在于,将对模型进行图优化之前,还包括:
在保持分组卷积结构的情况下,对分组卷积的模型进行剪枝。
4.根据权利要求3所述的方法,其特征在于,所述对分组卷积的模型进行剪枝,具体包括:
对含有分组卷积的卷积神经网络进行稀疏训练;
根据批归一化层的缩放因子和剪枝率确定冗余卷积核并对其进行剪枝;
根据精度要求,对剪枝后的模型进行微调。
5.根据权利要求4所述的方法,其特征在于,所述根据批归一化层的缩放因子和剪枝率确定冗余卷积核并对其进行剪枝,包括:
对模型的所有批归一化层的缩放因子排序;
根据预设的剪枝率确定对应的缩放因子阈值;
基于缩放因子阈值对各层卷积核进行临时剪枝;
若临时剪枝后的模型仍保持分组卷积结构,则直接输出,若临时剪枝后的模型不能保持分组卷积结构,则对临时剪枝后的模型进行调整直至模型能够保持分组卷积结构后再输出。
6.根据权利要求2所述的方法,其特征在于,所述对模型进行图优化以将模型中用于调整低位量化误差的缩放因子及批归一化层融合至卷积层之前,还包括:
对模型中的权重进行低位量化。
7.根据权利要求1~6中任一项所述的方法,其特征在于,对优化后的卷积神经网络的参数进行编译,获取在脉冲神经网络芯片上可运行的参数配置文件,包括:
将优化后的卷积神经网络的参数映射到拓扑结构相同的脉冲神经网络;
对映射后的脉冲神经网络参数进行仿真验证;
将验证正确的脉冲神经网络参数转换成脉冲神经网络芯片上可运行的参数配置文件。
8.根据权利要求1~6中任一项所述的方法,其特征在于,所述加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行推理运算处理之前,还包括:
对输入的原始数据进行预处理,并进行格式转换,获取待处理数据;
所述加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行推理运算处理之后,还包括:
将推理运算处理获得的数据进行数据后处理,获取数据处理结果。
9.一种模型优化部署系统,其特征在于,包括:
模型优化模块,用于对卷积神经网络进行模型优化,获取适配脉冲神经网络的卷积神经网络;
参数编译模块,用于对优化后的卷积神经网络的参数进行编译,获取在脉冲神经网络芯片上可运行的参数配置文件;以及
系统部署模块,用于加载参数配置文件以使脉冲神经网络芯片对输入的待处理数据进行推理运算处理。
10.根据权利要求9所述的系统,其特征在于,所述模型优化模块包括:
结构调整子模块,用于将卷积神经网络的模型结构中标准卷积用分组卷积进行替代;
图优化子模块,用于将模型中的批归一化层融合至卷积层,或者将模型中用于调整低位量化误差的缩放因子及批归一化层融合至卷积层;以及
量化子模块,用于对将模型中的批归一化层融合至卷积层的模型进行高位量化;或者用于在将模型中用于调整低位量化误差的缩放因子及批归一化层融合至卷积层之前,对模型中的权重进行低位量化。
11.根据权利要求10所述的系统,其特征在于,所述模型优化模块还包括:剪枝子模块,用于在保持分组卷积结构的情况下,对分组卷积的模型进行剪枝。
12.一种电子设备,其特征在于,包括:处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序;
其中,所述处理器运行所述计算机程序时实现如权利要求1至8中任一项权利要求所述的方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被执行如权利要求1至8中任一项权利要求所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110248323.2A CN113159276B (zh) | 2021-03-09 | 2021-03-09 | 模型优化部署方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110248323.2A CN113159276B (zh) | 2021-03-09 | 2021-03-09 | 模型优化部署方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113159276A true CN113159276A (zh) | 2021-07-23 |
CN113159276B CN113159276B (zh) | 2024-04-16 |
Family
ID=76884382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110248323.2A Active CN113159276B (zh) | 2021-03-09 | 2021-03-09 | 模型优化部署方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113159276B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688992A (zh) * | 2021-10-25 | 2021-11-23 | 中电云数智科技有限公司 | 一种模型优化系统和方法 |
CN114004352A (zh) * | 2021-12-31 | 2022-02-01 | 杭州雄迈集成电路技术股份有限公司 | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 |
CN114861892A (zh) * | 2022-07-06 | 2022-08-05 | 深圳时识科技有限公司 | 芯片在环代理训练方法及设备、芯片及电子设备 |
CN114997235A (zh) * | 2022-06-13 | 2022-09-02 | 脉冲视觉(北京)科技有限公司 | 基于脉冲信号的目标检测处理方法、装置、设备和介质 |
WO2023004799A1 (zh) * | 2021-07-30 | 2023-02-02 | 华为技术有限公司 | 电子设备及神经网络量化方法 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109784483A (zh) * | 2019-01-24 | 2019-05-21 | 电子科技大学 | 基于fd-soi工艺的二值化卷积神经网络内存内计算加速器 |
CN109816026A (zh) * | 2019-01-29 | 2019-05-28 | 清华大学 | 卷积神经网络和脉冲神经网络的融合结构及方法 |
US10387774B1 (en) * | 2014-01-30 | 2019-08-20 | Hrl Laboratories, Llc | Method for neuromorphic implementation of convolutional neural networks |
CN110555523A (zh) * | 2019-07-23 | 2019-12-10 | 中建三局智能技术有限公司 | 一种基于脉冲神经网络的短程跟踪方法及系统 |
CN110991608A (zh) * | 2019-11-25 | 2020-04-10 | 合肥恒烁半导体有限公司 | 一种卷积神经网络量化计算方法及系统 |
CN111783974A (zh) * | 2020-08-12 | 2020-10-16 | 成都佳华物链云科技有限公司 | 模型构建及图像处理方法、装置、硬件平台及存储介质 |
CN111814973A (zh) * | 2020-07-18 | 2020-10-23 | 福州大学 | 一种适用于神经常微分方程网络计算的存内计算系统 |
CN112116010A (zh) * | 2020-09-21 | 2020-12-22 | 中国科学院自动化研究所 | 基于膜电势预处理的ann-snn转换的分类方法 |
CN112116084A (zh) * | 2020-09-15 | 2020-12-22 | 中国科学技术大学 | 可重构平台上固化全网络层的卷积神经网络硬件加速器 |
CN112183739A (zh) * | 2020-11-02 | 2021-01-05 | 中国科学技术大学 | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 |
CN112288080A (zh) * | 2020-11-18 | 2021-01-29 | 中国人民解放军国防科技大学 | 面向脉冲神经网络的自适应模型转化方法及系统 |
CN112329922A (zh) * | 2020-11-24 | 2021-02-05 | 北京大学 | 一种基于质谱数据集的神经网络模型压缩方法及系统 |
-
2021
- 2021-03-09 CN CN202110248323.2A patent/CN113159276B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387774B1 (en) * | 2014-01-30 | 2019-08-20 | Hrl Laboratories, Llc | Method for neuromorphic implementation of convolutional neural networks |
CN109784483A (zh) * | 2019-01-24 | 2019-05-21 | 电子科技大学 | 基于fd-soi工艺的二值化卷积神经网络内存内计算加速器 |
CN109816026A (zh) * | 2019-01-29 | 2019-05-28 | 清华大学 | 卷积神经网络和脉冲神经网络的融合结构及方法 |
CN110555523A (zh) * | 2019-07-23 | 2019-12-10 | 中建三局智能技术有限公司 | 一种基于脉冲神经网络的短程跟踪方法及系统 |
CN110991608A (zh) * | 2019-11-25 | 2020-04-10 | 合肥恒烁半导体有限公司 | 一种卷积神经网络量化计算方法及系统 |
CN111814973A (zh) * | 2020-07-18 | 2020-10-23 | 福州大学 | 一种适用于神经常微分方程网络计算的存内计算系统 |
CN111783974A (zh) * | 2020-08-12 | 2020-10-16 | 成都佳华物链云科技有限公司 | 模型构建及图像处理方法、装置、硬件平台及存储介质 |
CN112116084A (zh) * | 2020-09-15 | 2020-12-22 | 中国科学技术大学 | 可重构平台上固化全网络层的卷积神经网络硬件加速器 |
CN112116010A (zh) * | 2020-09-21 | 2020-12-22 | 中国科学院自动化研究所 | 基于膜电势预处理的ann-snn转换的分类方法 |
CN112183739A (zh) * | 2020-11-02 | 2021-01-05 | 中国科学技术大学 | 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构 |
CN112288080A (zh) * | 2020-11-18 | 2021-01-29 | 中国人民解放军国防科技大学 | 面向脉冲神经网络的自适应模型转化方法及系统 |
CN112329922A (zh) * | 2020-11-24 | 2021-02-05 | 北京大学 | 一种基于质谱数据集的神经网络模型压缩方法及系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023004799A1 (zh) * | 2021-07-30 | 2023-02-02 | 华为技术有限公司 | 电子设备及神经网络量化方法 |
CN113688992A (zh) * | 2021-10-25 | 2021-11-23 | 中电云数智科技有限公司 | 一种模型优化系统和方法 |
CN114004352A (zh) * | 2021-12-31 | 2022-02-01 | 杭州雄迈集成电路技术股份有限公司 | 一种仿真实现方法、神经网络编译器以及计算机可读存储介质 |
CN114997235A (zh) * | 2022-06-13 | 2022-09-02 | 脉冲视觉(北京)科技有限公司 | 基于脉冲信号的目标检测处理方法、装置、设备和介质 |
CN114861892A (zh) * | 2022-07-06 | 2022-08-05 | 深圳时识科技有限公司 | 芯片在环代理训练方法及设备、芯片及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113159276B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113159276A (zh) | 模型优化部署方法、系统、设备及存储介质 | |
Liang et al. | Pruning and quantization for deep neural network acceleration: A survey | |
CN107636697B (zh) | 用于量化浮点神经网络以获得定点神经网络的方法和设备 | |
WO2021062029A1 (en) | Joint pruning and quantization scheme for deep neural networks | |
CN111652368A (zh) | 一种数据处理方法及相关产品 | |
KR20190034985A (ko) | 인공 신경망의 양자화 방법 및 장치 | |
KR20160143548A (ko) | 인공 신경 네트워크를 자동으로 조정하는 방법 및 장치 | |
Klachko et al. | Improving noise tolerance of mixed-signal neural networks | |
CN112990438B (zh) | 基于移位量化操作的全定点卷积计算方法、系统及设备 | |
CN111814973B (zh) | 一种适用于神经常微分方程网络计算的存内计算系统 | |
US20220036189A1 (en) | Methods, systems, and media for random semi-structured row-wise pruning in neural networks | |
CN115952832A (zh) | 自适应模型量化方法及装置、存储介质及电子装置 | |
EP4115345A1 (en) | Adaptive quantization for execution of machine learning models | |
Abdelsalam et al. | An efficient FPGA-based overlay inference architecture for fully connected DNNs | |
CN112633477A (zh) | 一种基于现场可编程阵列的量化神经网络加速方法 | |
CN115759237A (zh) | 端到端的深度神经网络模型压缩及异构转换系统及方法 | |
CN113112013A (zh) | 针对分辨率降低的神经网络的优化量化 | |
CN112686384A (zh) | 一种自适应比特位宽的神经网络量化方法及其装置 | |
CN114766024A (zh) | 用于修剪神经网络的方法和设备 | |
Park et al. | Squantizer: Simultaneous learning for both sparse and low-precision neural networks | |
Chin et al. | A high-performance adaptive quantization approach for edge CNN applications | |
KR20230071705A (ko) | 하이브리드 신경망 기반 객체 추적 학습 방법 및 시스템 | |
CN115564987A (zh) | 一种基于元学习的图像分类模型的训练方法及应用 | |
Hirose et al. | Quantization error-based regularization for hardware-aware neural network training | |
CN113918882A (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 |