CN116108752A - 模型压缩方法、装置、电子设备和存储介质 - Google Patents
模型压缩方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116108752A CN116108752A CN202310155689.4A CN202310155689A CN116108752A CN 116108752 A CN116108752 A CN 116108752A CN 202310155689 A CN202310155689 A CN 202310155689A CN 116108752 A CN116108752 A CN 116108752A
- Authority
- CN
- China
- Prior art keywords
- model
- source model
- expansion
- channel
- source
- 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.)
- Pending
Links
- 238000007906 compression Methods 0.000 title claims abstract description 93
- 230000006835 compression Effects 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 87
- 230000008569 process Effects 0.000 claims abstract description 23
- 238000013139 quantization Methods 0.000 claims description 65
- 238000012549 training Methods 0.000 claims description 52
- 238000005457 optimization Methods 0.000 claims description 24
- 238000004422 calculation algorithm Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012821 model calculation Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 20
- 238000013138 pruning Methods 0.000 claims description 18
- 230000035772 mutation Effects 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 10
- 238000009396 hybridization Methods 0.000 claims description 8
- 230000008447 perception Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 11
- 230000006872 improvement Effects 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 238000003062 neural network model Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 6
- 238000003058 natural language processing Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005094 computer simulation Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010845 search algorithm Methods 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013585 weight reducing agent Substances 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013145 classification model Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011056 performance test Methods 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- 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
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Geometry (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Optical Recording Or Reproduction (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本申请涉及一种模型压缩方法、装置、电子设备和存储介质。所述方法包括:对源模型进行优化处理,得到优化后的源模型;优化处理包括扩充源模型的至少一层卷积层的输出通道数;对优化后的源模型进行模型压缩,得到经压缩的模型。本申请从优化源模型的角度出发,通过通道扩充提升源模型的表现,进而在提高待压缩源模型的性能的同时,弥补压缩过程中的精度损失。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种模型压缩方法、装置、电子设备和存储介质。
背景技术
随着人工智能技术的不断发展,越来越多的领域开始应用基于深度学习的网络模型,例如,将基于计算机视觉的网络模型应用于图像识别和图像处理,将基于自然语言处理的网络模型应用于语义识别和自动问答等。
目前需要对网络模型进行压缩,以提高其在部署在电子设备后的推理运行速度。然而,传统的模型压缩方法存在精度损失大的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够减小精度损失的模型压缩方法、装置、电子设备和存储介质。
第一方面,本申请提供了一种模型压缩方法,方法包括:
对源模型进行优化处理,得到优化后的源模型;优化处理包括扩充源模型的至少一层卷积层的输出通道数;
对优化后的源模型进行模型压缩,得到经压缩的模型。
在其中一个实施例中,对源模型进行优化处理,得到优化后的源模型的步骤,包括:
基于源模型的模型算力和模型性能,确定出最优扩充数值;
根据最优扩充数值调整至少一层卷积层的输出通道数,得到优化后的源模型。
在其中一个实施例中,基于源模型的模型算力和模型性能,确定出最优扩充数值的步骤,包括:
若至少一层卷积层的数量为一层,则按照各候选扩充数值分别调整源模型的至少一层卷积层的输出通道数,得到各通道扩充后的源模型;
在通道扩充后的源模型的模型算力满足任务算力要求的情况下,利用测试集分别获取各通道扩充后的源模型的模型性能;其中,模型性能包括通道扩充后的源模型的分类准确率;
比较各通道扩充后的源模型的模型性能,得到模型性能最优的通道扩充后的源模型;
将模型性能最优的通道扩充后的源模型所对应的候选扩充数值,确认为最优扩充数值。
在其中一个实施例中,基于源模型的模型算力和模型性能,确定出最优扩充数值的步骤,包括:
若至少一层卷积层的数量为至少两层,则获取各通道扩充后的源模型;通道扩充后的源模型为分别按照各候选扩充数值调整源模型的至少一层卷积层的输出通道数得到;
在通道扩充后的源模型的模型算力满足任务算力要求的情况下,通过搜索策略获取模型性能最优的通道扩充后的源模型;其中,搜索策略为基于至少一层卷积层的数量以及候选扩充数值的数量所确定;
将模型性能最优的通道扩充后的源模型所对应的各候选扩充数值,确认为最优扩充数值。
在其中一个实施例中,方法还包括:
对模型性能最优的通道扩充后的源模型进行训练调优;
响应于模型性能最优的通道扩充后的源模型的模型性能收敛,确定完成模型性能最优的通道扩充后的源模型的训练调优;
将完成训练调优的模型性能最优的通道扩充后的源模型,作为优化后的源模型。
在其中一个实施例中,方法还包括:
若至少一层卷积层的数量小于或等于数量阈值、且候选扩充数值的数量小于或等于预设数量,则确认搜索策略为枚举算法。
在其中一个实施例中,方法还包括:
若至少一层卷积层的数量大于数量阈值、且候选扩充数值的数量大于预设数量,则确认搜索策略为基于进化算法的网络架构搜索。
在其中一个实施例中,通过搜索策略获取模型性能最优的通道扩充后的源模型的步骤,包括:
基于各通道扩充后的源模型构建超网络,从超网络中随机选取一个通道扩充后的源模型作为子网络,直至子网络的数量达到预设个数,将各子网络的集合作为种群集合;
在通道扩充后的源模型的模型算力满足任务算力要求的情况下,基于种群集合,循环执行迭代步骤,直至确定出模型性能最优的通道扩充后的源模型;
其中,迭代步骤包括:
获取本轮迭代的种群集合中各子网络的模型性能;
根据各子网络的模型性能,将模型性能更优的预设个数的子网络保留在本轮迭代的种群集合中,得到更新后的种群集合;
选取超网络中的子网络进行杂交操作和/或变异操作,得到用于下一轮迭代的种群集合;下一轮迭代的种群集合包括更新后的种群集合中的子网络,以及经过交叉操作和/或变异操作后的子网络。
在其中一个实施例中,对优化后的源模型进行模型压缩,得到经压缩的模型的步骤,包括:
对优化后的源模型进行模型量化,得到经压缩的模型。
在其中一个实施例中,对优化后的源模型进行模型量化,得到经压缩的模型的步骤,包括:
采用量化感知训练QAT处理优化后的源模型,得到经压缩的模型。
在其中一个实施例中,对优化后的源模型进行模型量化,得到经压缩的模型的步骤,包括:
采用训练后量化PTQ处理优化后的源模型,得到经压缩的模型。
在其中一个实施例中,对优化后的源模型进行模型压缩,得到经压缩的模型的步骤,包括:
对优化后的源模型进行剪枝处理,得到经压缩的模型。
在其中一个实施例中,优化处理还包括针对经扩充至少一层卷积层的输出通道数的源模型的训练调优;其中,训练调优用于获取训练至模型性能收敛的源模型。
第二方面,本申请还提供了一种模型压缩装置,装置包括:
优化模块,用于对源模型进行优化处理,得到优化后的源模型;优化处理包括扩充源模型的至少一层卷积层的输出通道数;
压缩模块,用于对优化后的源模型进行模型压缩,得到经压缩的模型。
第三方面,本申请还提供了一种电子设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
上述模型压缩方法、装置、电子设备和存储介质,通过对源模型进行优化处理,得到优化后的源模型;其中,优化处理包括扩充源模型的至少一层卷积层的输出通道数,进而通过对优化后的源模型进行模型压缩得到经压缩的模型。本申请实施例从优化源模型的角度出发,通过通道扩充提升源模型的表现,进而在提高待压缩源模型的性能的同时,弥补压缩过程中的精度损失。
附图说明
图1为传统模型量化方式示意图;
图2为一个实施例中模型压缩方法的应用环境图;
图3为一个实施例中模型压缩方法的流程示意图;
图4为一个实施例中模型输入端通道扩充示意图;
图5为一个实施例中模型压缩方法的应用示意图;
图6为一个实施例中对源模型进行通道扩充步骤的流程示意图;
图7为一个实施例中确认最优扩充数值步骤的流程示意图;
图8为另一个实施例中确认最优扩充数值步骤的流程示意图;
图9为一个实施例中多层通道扩充示意图;
图10为一个实施例中模型性能示意图;
图11为一个实施例中模型压缩装置的结构框图;
图12为一个实施例中电子设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,单数形式的“一”、“一个”和“所述/该”也可以包括复数形式,除非上下文清楚指出另外的方式。还应当理解的是,术语“包括/包含”或“具有”等指定所陈述的特征、整体、步骤、操作、组件、部分或它们的组合的存在,但是不排除存在或添加一个或更多个其他特征、整体、步骤、操作、组件、部分或它们的组合的可能性。同时,在本申请中使用的术语“和/或”包括相关所列项目的任何及所有组合。
在电子设备(例如,终端)部署深度学习神经网络时,需要研究如何把深度学习神经网络模型进行压缩,以提高其在部署在终端后的推理运行速度。目前有效的深度学习神经网络模型压缩的方法包括模型量化(Model Quantization)。
模型量化是网络模型从设计研究到实际部署的重要步骤。作为模型轻量化中最常用的基础操作,模型量化在模型减小参数体积以及降低算力的同时,需尽量保证压缩后的模型性能与源模型的性能相较,其精度损失在可接受范围内。进一步地,作为神经网络模型压缩的重要手段,模型量化的作用是减小模型的参数体积,降低模型推理所需算力,在保证其性能的情况下大大提高其在部署在终端后的推理运行速度。以浮点型float32数据格式(32bit)的源模型为例,若量化后数据格式为整数型int8格式(8bit),则量化后模型的整体体积减小约为源模型的1/4,压缩比在75%左右。
如图1所示,传统模型量化方式从是否训练模型参数的角度可以分为量化感知训练(Quantization-Aware Training,QAT)和训练后量化(Post-Training Quantization,PTQ);其中,量化感知训练QAT是通过设计不同的量化器以寻找合适的量化参数以减少量化带来的损失,训练后量化PTQ是通过引入训练来使模型的参数通过调优进一步抵消量化带来的精度损失。
然而,目前的模型量化方案都是针对模型的量化过程设计优化方案:通过对模型的权重和推理输出设计量化器,计算得到合理的量化参数,并通过不同的参数调优策略微调量化参数以减小量化误差,或者进一步通过训练的方法,在量化的同时调整模型权重,进一步弥补量化误差。传统模型量化方案从量化本身出发,以缩小量化误差为主,从效果的角度上讲,针对部分模型(尤其是冗余度少的轻量化模型,或含有深度可分离卷积的模型)的量化效果,仍存在损失精度过大,模型表现差距较为明显的问题,在缩小量化误差方面仍存在改进空间。同时,传统量化算法的设计和应用较为独立,基本不存在几个算法组合应用能较单独应用提高量化效果的可能。
本申请实施例从优化源模型的角度出发,通过模型通道扩充的思路,以源模型体积少量提升的代价提升源模型的表现,从而整体提高最终的模型表现。本申请实施例本质上不涉及量化过程的优化,可以作为一种效果提升的策略,与现有量化算法结合,可进一步提升现有方案的量化后模型的效果。其中,本申请实施例作为模型性能提升的一种手段,能够与现有量化算法相结合,进一步减少模型压缩中的精度损失,提升模型性能,本申请实施例对量化算法并无限定。
此外,本申请实施例也适用于量化以外的其他模型压缩的性能提升,如模型剪枝,操作流程类似于其在PTQ量化中的应用,可先对源模型做通道扩充以及训练调优,随后做通道剪枝以及剪枝后的训练调优。其中,剪枝是指从原始NN(Neural Network,神经网络)中系统性地剪去部分权重而尽量少地损失精度,以减少NN中的参数量,剪枝一般包括剪去权重和恢复精度两大步骤。
本申请实施例适用于大多数的视觉处理模型和自然语言处理模型,其中,本申请实施例可泛化地支持用于图像、语音的人工智能(Artificial Intelligence,AI)神经网络量化。需要说明的是,本申请实施例所描述的模型(例如,源模型)可以指神经网络模型,例如深度神经网络模型,又如基于卷积操作(Convolution,Conv)的深度学习网络模型;可选地,本申请实施例中的神经网络模型可以为VGGNet(Visual Geometry Group Network,视觉几何组网络)、ResNet(Residual Neural Network,残差神经网络)等。示例性地,本申请实施例中的神经网络可以含有DepthwiseConv(Depth-wise Separable Convolution,深度可分离卷积)层。
本申请实施例提供的模型压缩方法,可以应用于如图2所示的应用环境中。其中,在模型压缩设备102中可以进行模型压缩(例如,模型量化),针对选择出的源模型,模型压缩设备102可以基于本申请实施例的模型压缩方法,实现对所选择的源模型的模型压缩。压缩后的源模型作为经压缩的模型可以部署在电子设备104中,电子设备104可以基于经压缩的模型实现如图像处理、语言处理的相关功能。
进一步地,上述模型压缩设备102和电子设备104可以是具有机器学习能力的计算机设备,比如,该计算机设备可以是个人电脑、服务器等固定式计算机设备,或者,该计算机设备也可以是平板电脑、电子书阅读器等移动式计算机设备。
可选地,上述模型压缩设备102和电子设备104可以是同一个设备,或者,模型压缩设备102和电子设备104也可以是不同的设备。并且,当模型压缩设备102和电子设备104是不同的设备时,模型压缩设备102和电子设备104可以是同一类型的设备,比如模型压缩设备102和电子设备104可以都是个人电脑;或者,模型压缩设备102和电子设备104也可以是不同类型的设备,比如模型压缩设备102可以是服务器,而电子设备104可以是个人电脑或者智能手机等。本申请实施例对于模型压缩设备102和电子设备104的具体类型不做限定。
在一个实施例中,如图3所示,提供了一种模型压缩方法,以该方法应用于图1中的模型压缩设备为例进行说明,包括以下步骤:
步骤202,对源模型进行优化处理,得到优化后的源模型;优化处理包括扩充源模型的至少一层卷积层的输出通道数;
其中,源模型可以指神经网络模型;进一步地,源模型可以是基于卷积操作的深度学习网络模型。可选地,本申请实施例中的源模型可以是视觉处理模型,也可以是自然语言处理模型。
具体地,本申请实施例提出对源模型进行优化处理,该优化处理可以包括扩充至少一层卷积层的输出通道数,示例性地,至少一层卷积层至少包括源模型的第一层卷积层。即本申请实施例提出对源模型的卷积层(Conv)做通道扩充,针对源模型的至少一层卷积层(例如前几层卷积层),尤其是第一层卷积层做一定程度的通道扩充,进而得到优化后的源模型,且优化后的源模型具有更好的性能。
需要说明的是,以源模型为视觉处理模型或自然语言处理模型为例,对源模型的卷积层(Conv)做通道扩充,表面上违背了模型压缩的宗旨(增加了模型的体积);而实际上,目前大多数的视觉处理模型和自然语言处理模型在设计时,其采样通道数通常是逐渐递增的(即浅层的卷积权重比深层的卷积要少很多),进而从模型整体体积来看,针对模型的前几层卷积,尤其是第一层卷积做一定程度的通道扩充,对整体体积的提升是极少的。本申请实施例在不违背压缩宗旨的前提下,能够保证不明显提升模型的参数体积。
进一步的,本申请实施例中的通道扩充,可以指对源模型输入端的至少一层卷积层的输出通道数的扩充,且该至少一层卷积层至少包括第一层卷积层,即本申请实施例中的通道扩充至少包括对源模型输入端的第一层卷积层的输出通道数的扩充。
示例性地,本申请实施例中的至少一层卷积层可以指通道扩充候选的卷积层。进一步地,本申请实施例中的至少一层卷积层还可以包括第一层卷积层的相关层,例如,后续紧邻第一层卷积层的卷积层,又如第一个残差模块(Residual Block)的卷积层(Conv)。进一步地,本申请实施例中的通道扩充可以指在至少一层卷积层的原始输出通道数的基础上增加相应数量(例如数量n)。
可选地,以源模型为残差网络结构ResNet50为例,基于本申请实施例可以对该源模型的第一层卷积层的输出层做通道扩充,以及对源模型的其他相关层进行通道扩充;例如,针对该源模型的第一层卷积层Conv输出通道数Cout,从原始Cout=64可以分别扩充16,32或64。同时,相应后续的第一个模块(Block)的几个卷积层(Conv)也对应扩充通道,进而可以保持模型逻辑的正确性。
为了进一步阐释本申请实施例,下面结合一个具体示例予以说明,如图4所示,以源模型为基础模型ResNet50为例,该模型ResNet50可以采用ResNet50-ImageNet1K,本申请实施例可以应用于模型输入端的通道扩充,对于源模型输入端(Input)的第一个卷积层和第一个残差模块的卷积层,图4中的Conv/BN(Batch Normalization,批归一化操作)/ReLU(Rectified Linear Unit,线性整流函数)表示卷积+批归一化+ReLU激活函数的顺序输入输出模块;Conv/BN表示卷积+批归一化的顺序输入输出模块;MaxPooling2D表示池化层。
图4的源模型中,w:(H,W,cin,cout)表示对应卷积层的权重及其相应维度,其中,H表示权重张量的卷积核的长,W表示权重张量的卷积核的宽,cin表示权重张量的卷积核的特征的输入通道数,cout表示权重张量的卷积核的特征的输出通道数,n表示需要扩充的通道数(也可以称之为通道扩充数)。由图4可知,本申请实施例中的通道扩充,可以包括对模型输入端的第一个卷积层输出通道数的扩充,即在至少一层卷积层的原始输出通道数的基础上增加n;需要说明的是,图4中为了保持模型逻辑的正确性,其后续紧邻输出的相关层的通道也有相应的扩充。
需要说明的是,本申请实施例中,扩充的通道数n可以依据其对源模型本身性能的提升来选取。可选地,在相应任务下,若任务本身对模型的算力有额外要求的话,则扩充的通道数n可以在算力限制内选取合适值。进一步地,可以基于源模型的模型结构,以提升模型性能为目标,采用搜索算法来确定扩充的通道数n的最优解。
此外,对于部分网络含有DepthwiseConv层(深度可分离卷积)的源模型,此类卷积因拆分空间维度和通道维度的相关性而精简了卷积参数量,对量化比较敏感,采用传统方案易导致带有该类卷积层的网络在量化中精度损失过多。而基于本申请实施例,鉴于DepthwiseConv本身参数量比普通Conv少,本申请实施例也可用于模型中的此类深度可分离卷积,通过对模型前几层卷积操作的通道扩充,提高其对量化操作的鲁棒性,减少其对模型性能的影响。
步骤204,对优化后的源模型进行模型压缩,得到经压缩的模型。
具体而言,在对源模型进行优化处理获得优化后的源模型之后,可以对优化后的源模型进行模型压缩,进而得到用于部署在电子设备中的经压缩的模型。通过对源模型进行扩充至少一层卷积层的输出通道数的优化处理,本申请实施例用模型体积较少的增加换取模型性能有效的提升具有其可行性。
模型压缩是在一定的压缩比下尽量保证模型更好的性能,而更好的源模型的性能为后续压缩后模型具有相对较好的性能提供了助力。本申请实施例从提高源模型性能的角度弥补模型量化的精度损失,整体提升压缩后模型的性能。本申请实施例通过提高待压缩源模型的性能,从而弥补压缩过程中的精度损失,同时在不违背压缩宗旨的前提下,保证不明显提升模型的参数体积。
在其中一个实施例中,对优化后的源模型进行模型压缩,得到经压缩的模型的步骤,包括:
对优化后的源模型进行模型量化,得到经压缩的模型。
具体而言,本申请实施例中对优化后的源模型进行的模型压缩可以指模型量化,经压缩的模型可以指对优化后的源模型进行模型量化后获得的模型,即量化后模型;作为一种效果提升的策略,本申请实施例可以与目前的量化算法结合,进一步提升量化后模型的效果。本申请实施例可不涉及对量化器的改进,能够与目前的各种量化器共用以进一步提升量化模型的性能。
在其中一个实施例中,对优化后的源模型进行模型量化,得到经压缩的模型的步骤,包括:
采用量化感知训练QAT处理优化后的源模型,得到经压缩的模型。
具体而言,如图5所示,关于本申请实施例中通道扩充在量化过程中的作用位置,针对量化感知训练QAT,其是在权重更迭中量化,基于本申请实施例只需在做QAT量化前对源模型进行通道扩充即可,进而可以得到经压缩的模型(量化后模型)。本申请实施例能够与量化感知训练QAT相结合,进一步减少模型压缩中的精度损失,提升模型性能。
在其中一个实施例中,对优化后的源模型进行模型量化,得到经压缩的模型的步骤,包括:
采用训练后量化PTQ处理优化后的源模型,得到经压缩的模型。
具体而言,如图5所示,关于本申请实施例中通道扩充在量化过程中的作用位置,针对训练后量化PTQ,本申请实施例可以在PTQ量化之前对源模型进行通道扩充;可选地,本申请实施例可以在PTQ量化之前对源模型进行通道扩充和训练调优,其中,训练调优可以指对经过通道扩充的源模型进行训练直至其性能收敛,以进一步提升量化模型的性能。
以上,本申请实施例能够与训练后量化PTQ相结合,进一步减少模型压缩中的精度损失,提升模型性能。
在其中一个实施例中,对优化后的源模型进行模型压缩,得到经压缩的模型的步骤,包括:
对优化后的源模型进行剪枝处理,得到经压缩的模型。
具体而言,本申请实施例中对优化后的源模型进行的模型压缩可以指模型剪枝,进而经压缩的模型可以指对优化后的源模型进行模型剪枝后获得的模型;本申请实施例中通道扩充也适用于量化以外的其他模型压缩的性能提升。结合图5,关于本申请实施例中通道扩充在模型剪枝过程中的应用,具体操作流程可以类似于其在PTQ量化中的作用位置,先对源模型做通道扩充以及训练调优,随后做通道剪枝以及剪枝后的训练调优。
在其中一个实施例中,优化处理还可以包括针对经扩充至少一层卷积层的输出通道数的源模型的训练调优;其中,训练调优用于获取训练至模型性能收敛的源模型。
具体地,本申请实施例中对源模型进行优化处理,以得到优化后的源模型的过程中,对于部分模型压缩方式而言,该优化处理还可以包括针对经扩充至少一层卷积层的输出通道数的源模型的训练调优;以模型压缩为PTQ量化为例,可以在PTQ量化之前对源模型进行通道扩充和训练调优;可选地,以模型压缩为模型剪枝为例,可以先对源模型做通道扩充以及训练调优,随后做通道剪枝以及剪枝后的训练调优。
其中,该训练调优以获取训练至模型性能收敛的源模型为目的,即对经扩充至少一层卷积层的输出通道数的源模型进行训练,直至其模型性能收敛;而本申请实施例中的模型性能可以采用模型在相应测试集下的分类准确率予以表征。
以上,本申请实施例从优化源模型的角度出发,通过通道扩充提升源模型的表现,进而在提高待压缩源模型的性能的同时,弥补压缩过程中的精度损失。
在一个实施例中,如图6所示,对源模型进行优化处理,得到优化后的源模型的步骤,可以包括:
步骤302,基于源模型的模型算力和模型性能,确定出最优扩充数值;
步骤304,根据最优扩充数值调整至少一层卷积层的输出通道数,得到优化后的源模型。
具体而言,本申请实施例中的通道扩充可以指根据最优扩充数值调整至少一层卷积层的输出通道数。其中,最优扩充数值可以理解为是针对至少一层卷积层的原始输出通道数而言,需要再扩充的通道数的数量;在一些示例中,最优扩充数值可以采用扩充的通道数n来表达。
进一步地,关于本申请实施例中最优扩充数值的选取,可以参考其对源模型本身性能的提升,而在相应任务下,如果任务本身对模型的算力有额外要求的话,则需要在算力限制内选取合适值。
在其中一个实施例中,如图7所示,基于源模型的模型算力和模型性能,确定出最优扩充数值的步骤,可以包括:
步骤402,若至少一层卷积层的数量为一层,则按照各候选扩充数值分别调整源模型的第一层卷积层的输出通道数,得到各通道扩充后的源模型;
步骤404,在通道扩充后的源模型的模型算力满足任务算力要求的情况下,利用测试集分别获取各通道扩充后的源模型的模型性能;其中,模型性能包括通道扩充后的源模型的分类准确率;
步骤406,比较各通道扩充后的源模型的模型性能,得到模型性能最优的通道扩充后的源模型;
步骤408,将模型性能最优的通道扩充后的源模型所对应的候选扩充数值,确认为最优扩充数值。
具体而言,当需要做通道扩充的卷积层较少时,例如至少一层卷积层的数量为一层,即至少一层卷积层只有第一层卷积层的情况下,确定合适的最优扩充数值(n)较为简单,可分别针对候选的扩充数值(即候选扩充数值),构建模型并训练,最后根据收敛后的模型的性能,选取性能最好的模型,并将其对应的候选扩充数值作为最优扩充数值。示例性地,可以通过单个维度的线性采样检索和枚举来找到最优扩充数值(n)的最优解。
可选地,用于获取模型的模型性能的测试集可以采用测试分类模型性能的公开数据集(An open-source dataset for training and evaluation on model ofclassification),例如Cifar10数据集,又如ImageNet1K数据集;需要说明的是,本申请实施例对于测试集的种类并无限定。示例性地,本申请实施例中的模型性能可以采用分类准确率予以表征。
以至少一层卷积层只有第一层卷积层为例,可以采用如下方式确定出最优扩充数值(n):设源模型为M,通道扩充数S={n1,n2,…},Flops()表示计算模型的算力,Fthresh表示任务的算力限制;
for n=ni,ni∈S:
通道扩充,M’←M(M’表示通道扩充后模型);
If Flops(M’)<Fthresh:
训练M’;
推理M’,记录性能;
选取最好性能对应的模型。
其中,Flops表示每秒浮点运算次数(Floating-point operations per second)。Flops()表示计算模型的算力,即获取模型的模型算力。Fthresh表示任务的算力限制,可以采用任务算力要求予以表征。在至少一层卷积层的数量为一层的情况下,可以按照各候选扩充数值(S={n1,n2,…})分别调整源模型的第一层卷积层的输出通道数,得到各通道扩充后的源模型M’。
进一步地,在通道扩充后的源模型的模型算力满足任务算力要求,即Flops(M’)<Fthresh的情况下,可以分别获取各通道扩充后的源模型的模型性能(利用相应测试集获取),例如推理M’,记录M’的模型性能;其中,模型性能可以指通道扩充后的源模型M’的分类准确率。通过比较各通道扩充后的源模型M’的模型性能,可以得到模型性能最优的通道扩充后的源模型,进而将模型性能最优的通道扩充后的源模型所对应的候选扩充数值,确认为最优扩充数值。
以上,本申请实施例需要做通道扩充的卷积层较少时,可以获取最优扩充数值的最优解,进而基于最优扩充数值对源模型进行通道扩充,以源模型体积少量提升的代价提升源模型的表现,进一步减少模型压缩中的精度损失,从而整体提高最终的模型表现。
在其中一个实施例中,如图8所示,基于源模型的模型算力和模型性能,确定出最优扩充数值的步骤,可以包括:
步骤502,若至少一层卷积层的数量为至少两层,则获取各通道扩充后的源模型;通道扩充后的源模型为分别按照各候选扩充数值调整源模型的至少一层卷积层的输出通道数得到;
步骤504,在通道扩充后的源模型的模型算力满足任务算力要求的情况下,通过搜索策略获取模型性能最优的通道扩充后的源模型;其中,搜索策略为基于至少一层卷积层的数量以及候选扩充数值的数量所确定;
步骤506,将模型性能最优的通道扩充后的源模型所对应的各候选扩充数值,确认为最优扩充数值。
具体而言,若至少一层卷积层的数量为至少两层,即通道扩充候选的卷积层较多(两层或两层以上)时,可以获取各通道扩充后的源模型;其中,通道扩充后的源模型为分别按照各候选扩充数值调整源模型的至少一层卷积层的输出通道数得到。
关于通道扩充后的源模型,至少一层卷积层指需要通道扩充的卷积层,可以设需要通道扩充的卷积层为{C1,C2,…,CN};Ci层可选扩充通道数采样为Si={ni1,ni2,…,niM},i=1,2,…,N,其中,N可以表示至少一层卷积层的数量,M可以表示候选扩充数值的数量,以此分别扩充得到卷积层为{ci1,ci2,…,ciM},进而可以获得各通道扩充后的源模型。
进一步地,以图9中(a)所示的模型结构为例,若针对源模型前几层的通道改动对模型体积影响甚微,选择合理的扩充方案的搜索空间维度较大,通过单个维度的线性采样检索和枚举来获得最优解的难度较大。针对这种较复杂的情况,本申请实施例提出可以通过搜索策略获取模型性能最优的通道扩充后的源模型;其中,该搜索策略可以为基于至少一层卷积层的数量以及候选扩充数值的数量所确定。
在本申请实施例中,可以基于至少一层卷积层的数量以及候选扩充数值的数量来表征搜索空间的大小,进而可以依据搜索空间的大小来确定搜索策略。本申请实施例在通道扩充候选的卷积层较多时,通过搜索算法来检索合适的扩充值(即最优扩充数值),进而基于最优扩充数值对源模型进行通道扩充,以源模型体积少量提升的代价提升源模型的表现,进一步减少模型压缩中的精度损失,从而整体提高最终的模型表现。
在其中一个实施例中,方法还可以包括:
若至少一层卷积层的数量大于数量阈值、且候选扩充数值的数量大于预设数量,则确认搜索策略为基于进化算法的网络架构搜索。
具体而言,本申请实施例可以依据搜索空间的大小来确定搜索策略;而搜索空间的大小可以基于至少一层卷积层的数量以及候选扩充数值的数量来表征。其中,若至少一层卷积层的数量大于数量阈值、且候选扩充数值的数量大于预设数量,则可以确定搜索空间较大,进而可以确认搜索策略为基于进化算法的网络架构搜索。即在搜索空间维度较大时,本申请实施例提出可以利用网络架构检索(Neural Architecture Search,NAS)的方法配合进化算法(Evolutionary Algorithm)检索合适的扩充值(即最优扩充数值)。
在一些示例中,本申请实施例中的搜索策略还可以采用一次性神经网络结构检索(One-shot Neural Architecture Search,one-shot NAS)。本申请实施例可以将one-shotNAS应用到多层通道扩充的最优解搜索中,进而在提高源模型性能同时弥补模型量化的精度损失,整体提升压缩后模型(例如量化后模型)的性能。
进一步地,若确认搜索策略为基于进化算法的网络架构搜索,在其中一个实施例中,通过搜索策略获取模型性能最优的通道扩充后的源模型的步骤,可以包括:
基于各通道扩充后的源模型构建超网络,从超网络中随机选取一个通道扩充后的源模型作为子网络,直至子网络的数量达到预设个数,将各子网络的集合作为种群集合;
在通道扩充后的源模型的模型算力满足任务算力要求的情况下,基于种群集合,循环执行迭代步骤,直至确定出模型性能最优的通道扩充后的源模型;
其中,迭代步骤可以包括:
获取本轮迭代的种群集合中各子网络的模型性能;
根据各子网络的模型性能,将模型性能更优的预设个数的子网络保留在本轮迭代的种群集合中,得到更新后的种群集合;
选取超网络中的子网络进行杂交操作和/或变异操作,得到用于下一轮迭代的种群集合;下一轮迭代的种群集合包括更新后的种群集合中的子网络,以及经过交叉操作和/或变异操作后的子网络。
具体而言,当通道扩充候选的卷积层较多时,可以采用基于进化算法的网络架构搜索作为搜索策略。在通过搜索策略获取模型性能最优的通道扩充后的源模型的步骤中,可以首先构建超网模型(例如,超网络Supernet),然后获得种群集合,进而可以在通道扩充后的源模型的模型算力满足任务算力要求的情况下,基于种群集合,循环执行迭代步骤,直至确定出模型性能最优的通道扩充后的源模型。
进一步地,设需要通道扩充的卷积层为{C1,C2,…,CN};Ci层可选扩充通道数采样为Si={ni1,ni2,…,niM},i=1,2,…,N,以此分别扩充得到卷积层为{ci1,ci2,…,ciM},可以构建超网模型Msp;其中,N可以表示至少一层卷积层的数量,M可以表示候选扩充数值的数量。
其中,关于构建超网络(Supernet),以图9中(a)所示的模型结构为例,如图9中(b)所示,可以将Ci层扩充后的卷积层{ci1,ci2,…,ciM}组合成一个模块集合(Module List),每次选取子网络(Subnet)只选择其中一个,如图9中(c)所示。
初始化P,即随机选取p个子网络Subnet;设每个周期中种群的变异数量为kM,杂交数量为kC,变异概率为prob;
fori=1:Tdo:
推理P中所有子网络Subnet,记录其性能;
更新P,即根据子网络Subnet的性能排序,保留排序在前的p个子网络Subnet,删除排序在后的多余的子网络Subnet;
杂交产生kC个新的Subnet:Pcrossover=Crossover(P,kC,Fthresh);
变异产生kM个新的Subnet:Pmutation=Mutation(P,kM,prob,Fthresh);
将新产生的子网络Subnet全都加到种群集合:P=P∪Pcrossover∪Pmutation;
返回P中性能最好的子网络Subnet作为最终选取的模型,设为模型性能最优的通道扩充后的源模型M′。
需要说明的是,关于本申请实施例中的杂交操作,即模型杂交Crossover()的具体步骤可以包括:随机选取P中的两个子网络Subnet,逐一处理{C1,C2,…,CN}层,对于Ci,随机选取两个网络中的任一选项,组成新的杂交网络。
关于本申请实施例中的变异操作,即模型变异Mutation()的具体步骤可以包括:随机选取P中的一个子网络Subnet,逐一处理{C1,C2,…,CN}层,对于Ci,有prob的概率变成{ci1,ci2,…,ciM}中其他的选项,从而变成新的网络。
以上,本申请实施例需要做通道扩充的卷积层较多时,可以通过搜索算法获取最优扩充数值的最优解,进而基于最优扩充数值对源模型进行通道扩充,以源模型体积少量提升的代价提升源模型的表现,进一步减少模型压缩中的精度损失,从而整体提高最终的模型表现。
在其中一个实施例中,方法还可以包括:
对模型性能最优的通道扩充后的源模型进行训练调优;
响应于模型性能最优的通道扩充后的源模型的模型性能收敛,确定完成模型性能最优的通道扩充后的源模型的训练调优;
将完成训练调优的模型性能最优的通道扩充后的源模型,作为优化后的源模型。
具体而言,在通过搜索策略获取模型性能最优的通道扩充后的源模型的过程中,即在多层通道扩充的最优解搜索中,可以在搜索的同时调优,进而得到扩充后的模型;本申请实施例从优化源模型的角度出发,通过通道扩充提升源模型的表现,进而在提高待压缩源模型的性能的同时,弥补压缩过程中的精度损失。
进一步地,可以将通过在搜索的同时调优的方式获取到的模型,作为优化后的模型输出。以搜索策略为基于进化算法的网络架构搜索(例如,one-shot NAS)为例,在将P中性能最好的子网络Subnet作为最终选取的模型设为M′后,可以对M’做重训练调优,直至其性能收敛,即为最终输出模型。
在其中一个实施例中,方法还可以包括:
若至少一层卷积层的数量小于或等于数量阈值、且候选扩充数值的数量小于或等于预设数量,则确认搜索策略为枚举算法。
具体地,在本申请实施例中,可以依据搜索空间的大小来确定搜索策略;而搜索空间的大小可以基于至少一层卷积层的数量以及候选扩充数值的数量来表征。示例性地,若至少一层卷积层的数量小于或等于数量阈值、且候选扩充数值的数量小于或等于预设数量,则确定搜索空间较小,可以采用枚举算法作为搜索策略。
针对多卷积层的通道扩充数检索,前述示例采用进化算法作为搜索策略。可选地,当备选扩充的层数不多、且每层的备选参数不多时,即至少一层卷积层的数量N和候选扩充数值的数量M值不大(进而N*M值较小,则整体搜索空间很小),则可以采用枚举替换进化算法。
以上,本申请实施例从提高源模型性能的角度弥补模型量化的精度损失,可以融合压缩方案(例如量化),整体提升量化后模型的性能。本申请实施例通过提高待压缩源模型的性能,从而弥补量化过程中的精度损失,可以在不违背压缩宗旨的前提下,保证不明显提升模型的参数体积;并且可以与各种量化器共用以进一步提升量化模型的性能。
为了进一步阐释本申请实施例的方案,下面结合一个具体示例予以说明,以源模型为常用的基础模型(分别为ResNet50-ImageNet1K、VGG16-ImageNet1K以及ResNet20-24-cifar10),且模型压缩采用模型量化为例,如表1所示:
表1-通道扩充后模型的体积变化
其中,表1中第1列表示模型名称;第2列表示该模型统计的初始参数量,M表示106级数;第3-5列分别表示对模型的第一层卷积层的输出层做通道扩充以及其他相关层通道扩充后模型参数量的变化,其中ResNet50-ImageNet1K与VGG16-ImageNet1K分别扩充16,32和64通道,ResNet20-24-cifar10分别扩充了8,16,32通道,表格中用/分隔的两个数值分别表示扩充后的参数值的绝对值和与源模型相比的相对变化值。
从体积的角度,参阅表1所示,针对几种常用的基础模型的通道扩充前后的参数统计可以看出,以ResNet50为例,对其第一层卷积层输出通道数Cout从原始Cout=64分别扩充16,32和64后(为保持模型逻辑的正确性,相应后续的第一个残差模块的几个卷积层也对应扩充通道),总体参数量分别增加了0.0511%,0.122%和0.324%,若考虑量化压缩比例,源模型直接量化后,按模型体积压缩为源模型的25.0%计算,进行上述的通道扩充后再做量化,量化后模型体积分别压缩为源模型的25.013%,25.031%以及25.081%,相比原压缩比25.0%影响很小。
进一步地,以源模型为Resnet20-cifar10为例,参阅图10;从性能表现的角度,图10示出了Resnet20-cifar10的分类性能表现,在第一层卷积层的不同输出通道数cout=B下,模型的性能有比较显著的提升。需要说明的是,图10中模型名称可以写作Resnet20-B-cifar10,其中“B”指x轴线B值,表示第一层卷积层的输出通道数;Y轴表示模型在cifar10数据集的测试集的分类准确率,可以表征模型性能。可见,用模型体积较少的增加换取模型性能有效的提升具有其可行性。模型压缩任务的本质就是在一定的压缩比下尽量保证模型更好的性能,而更好的源模型的性能为后续压缩后模型有相对较好的性能提供了助力。
上述模型压缩方法,通过对源模型进行优化处理,得到优化后的源模型;其中,优化处理包括扩充至少一层卷积层的输出通道数,而至少一层卷积层至少包括源模型的第一层卷积层,进而通过对优化后的源模型进行模型压缩得到经压缩的模型。本申请实施例从优化源模型的角度出发,通过通道扩充提升源模型的表现,进而在提高待压缩源模型的性能的同时,弥补压缩过程中的精度损失。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的模型压缩方法的模型压缩装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个模型压缩装置实施例中的具体限定可以参见上文中对于模型压缩方法的限定,在此不再赘述。
在一个实施例中,如图11所示,提供了一种模型压缩装置,包括:
优化模块110,用于对源模型进行优化处理,得到优化后的源模型;优化处理包括扩充源模型的至少一层卷积层的输出通道数;
压缩模块120,用于对优化后的源模型进行模型压缩,得到经压缩的模型。
在其中一个实施例中,优化模块110包括:
扩充值确定模块,用于基于源模型的模型算力和模型性能,确定出最优扩充数值;
通道扩充模块,用于根据最优扩充数值调整至少一层卷积层的输出通道数,得到优化后的源模型。
在其中一个实施例中,扩充值确定模块包括:
扩充模型获取模块,用于若至少一层卷积层的数量为一层,则按照各候选扩充数值分别调整源模型的第一层卷积层的输出通道数,得到各通道扩充后的源模型;
性能测试模块,用于在通道扩充后的源模型的模型算力满足任务算力要求的情况下,利用测试集分别获取各通道扩充后的源模型的模型性能;其中,模型性能包括通道扩充后的源模型的分类准确率;
性能比较模块,用于比较各通道扩充后的源模型的模型性能,得到模型性能最优的通道扩充后的源模型;
数值确认模块,用于将模型性能最优的通道扩充后的源模型所对应的候选扩充数值,确认为最优扩充数值。
在其中一个实施例中,扩充值确定模块包括:
模型获取模块,用于若至少一层卷积层的数量为至少两层,则获取各通道扩充后的源模型;通道扩充后的源模型为分别按照各候选扩充数值调整源模型的至少一层卷积层的输出通道数得到;
搜索模块,用于在通道扩充后的源模型的模型算力满足任务算力要求的情况下,通过搜索策略获取模型性能最优的通道扩充后的源模型;其中,搜索策略为基于至少一层卷积层的数量以及候选扩充数值的数量所确定;
数值确定模块,用于将模型性能最优的通道扩充后的源模型所对应的各候选扩充数值,确认为最优扩充数值。
在其中一个实施例中,装置还包括:
训练调优模块,用于对模型性能最优的通道扩充后的源模型进行训练调优;
优化确认模块,用于响应于模型性能最优的通道扩充后的源模型的模型性能收敛,确定完成模型性能最优的通道扩充后的源模型的训练调优;将完成训练调优的模型性能最优的通道扩充后的源模型,作为优化后的源模型。
在其中一个实施例中,搜索模块,用于若至少一层卷积层的数量小于或等于数量阈值、且候选扩充数值的数量小于或等于预设数量,则确认搜索策略为枚举算法。
在其中一个实施例中,搜索模块,用于若至少一层卷积层的数量大于数量阈值、且候选扩充数值的数量大于预设数量,则确认搜索策略为基于进化算法的网络架构搜索。
在其中一个实施例中,搜索模块包括:
种群获取模块,用于基于各通道扩充后的源模型构建超网络,从超网络中随机选取一个通道扩充后的源模型作为子网络,直至子网络的数量达到预设个数,将各子网络的集合作为种群集合;
循环模块,用于在通道扩充后的源模型的模型算力满足任务算力要求的情况下,基于种群集合,循环执行迭代步骤,直至确定出模型性能最优的通道扩充后的源模型;其中,循环模块包括迭代模块,迭代模块用于获取本轮迭代的种群集合中各子网络的模型性能;根据各子网络的模型性能,将模型性能更优的预设个数的子网络保留在本轮迭代的种群集合中,得到更新后的种群集合;以及选取超网络中的子网络进行杂交操作和/或变异操作,得到用于下一轮迭代的种群集合;下一轮迭代的种群集合包括更新后的种群集合中的子网络,以及经过交叉操作和/或变异操作后的子网络。
在其中一个实施例中,压缩模块120,用于对优化后的源模型进行模型量化,得到经压缩的模型。
在其中一个实施例中,压缩模块120,用于采用量化感知训练QAT处理优化后的源模型,得到经压缩的模型。
在其中一个实施例中,压缩模块120,用于采用训练后量化PTQ处理优化后的源模型,得到经压缩的模型。
在其中一个实施例中,压缩模块120,用于对优化后的源模型进行剪枝处理,得到经压缩的模型。
在其中一个实施例中,优化处理还包括针对经扩充至少一层卷积层的输出通道数的源模型的训练调优;其中,训练调优用于获取训练至模型性能收敛的源模型。
上述模型压缩装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种电子设备,该电子设备可以是终端,其内部结构图可以如图12所示。该电子设备包括处理器、存储器、输入/输出接口、通信接口、显示单元和输入装置。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口、显示单元和输入装置通过输入/输出接口连接到系统总线。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的输入/输出接口用于处理器与外部设备之间交换信息。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种模型压缩方法。该电子设备的显示单元用于形成视觉可见的画面,可以是显示屏、投影装置或虚拟现实成像装置。显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种电子设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述模型压缩方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述模型压缩方法的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述模型压缩方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (17)
1.一种模型压缩方法,其特征在于,所述方法包括:
对源模型进行优化处理,得到优化后的源模型;所述优化处理包括扩充所述源模型的至少一层卷积层的输出通道数;
对所述优化后的源模型进行模型压缩,得到经压缩的模型。
2.根据权利要求1所述的方法,其特征在于,所述对源模型进行优化处理,得到优化后的源模型的步骤,包括:
基于所述源模型的模型算力和模型性能,确定出最优扩充数值;
根据所述最优扩充数值调整所述至少一层卷积层的输出通道数,得到所述优化后的源模型。
3.根据权利要求2所述的方法,其特征在于,所述基于所述源模型的模型算力和模型性能,确定出最优扩充数值的步骤,包括:
若所述至少一层卷积层的数量为一层,则按照各候选扩充数值分别调整所述源模型的所述至少一层卷积层的输出通道数,得到各通道扩充后的源模型;
在所述通道扩充后的源模型的所述模型算力满足任务算力要求的情况下,利用测试集分别获取各所述通道扩充后的源模型的所述模型性能;其中,所述模型性能包括所述通道扩充后的源模型的分类准确率;
比较各所述通道扩充后的源模型的所述模型性能,得到所述模型性能最优的所述通道扩充后的源模型;
将所述模型性能最优的所述通道扩充后的源模型所对应的所述候选扩充数值,确认为所述最优扩充数值。
4.根据权利要求2所述的方法,其特征在于,所述基于所述源模型的模型算力和模型性能,确定出最优扩充数值的步骤,包括:
若所述至少一层卷积层的数量为至少两层,则获取各通道扩充后的源模型;所述通道扩充后的源模型为分别按照各候选扩充数值调整所述源模型的所述卷积层的输出通道数得到;
在所述通道扩充后的源模型的所述模型算力满足任务算力要求的情况下,通过搜索策略获取所述模型性能最优的所述通道扩充后的源模型;其中,所述搜索策略为基于所述至少一层卷积层的数量以及所述候选扩充数值的数量所确定;
将所述模型性能最优的所述通道扩充后的源模型所对应的各所述候选扩充数值,确认为所述最优扩充数值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
对所述模型性能最优的所述通道扩充后的源模型进行训练调优;
响应于所述模型性能最优的所述通道扩充后的源模型的模型性能收敛,确定完成所述模型性能最优的所述通道扩充后的源模型的所述训练调优;
将完成所述训练调优的所述模型性能最优的所述通道扩充后的源模型,作为所述优化后的源模型。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述至少一层卷积层的数量小于或等于数量阈值、且所述候选扩充数值的数量小于或等于预设数量,则确认所述搜索策略为枚举算法。
7.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述至少一层卷积层的数量大于数量阈值、且所述候选扩充数值的数量大于预设数量,则确认所述搜索策略为基于进化算法的网络架构搜索。
8.根据权利要求7所述的方法,其特征在于,所述通过搜索策略获取所述模型性能最优的所述通道扩充后的源模型的步骤,包括:
基于各所述通道扩充后的源模型构建超网络,从所述超网络中随机选取一个所述通道扩充后的源模型作为子网络,直至所述子网络的数量达到预设个数,将各所述子网络的集合作为种群集合;
在所述通道扩充后的源模型的所述模型算力满足任务算力要求的情况下,基于所述种群集合,循环执行迭代步骤,直至确定出所述模型性能最优的所述通道扩充后的源模型;
其中,所述迭代步骤包括:
获取本轮迭代的种群集合中各所述子网络的所述模型性能;
根据各所述子网络的所述模型性能,将模型性能更优的所述预设个数的子网络保留在所述本轮迭代的种群集合中,得到更新后的种群集合;
选取所述超网络中的所述子网络进行杂交操作和/或变异操作,得到用于下一轮迭代的种群集合;所述下一轮迭代的种群集合包括所述更新后的种群集合中的子网络,以及经过所述交叉操作和/或所述变异操作得到的所述子网络。
9.根据权利要求1所述的方法,其特征在于,所述对所述优化后的源模型进行模型压缩,得到经压缩的模型的步骤,包括:
对所述优化后的源模型进行模型量化,得到所述经压缩的模型。
10.根据权利要求9所述的方法,其特征在于,所述对所述优化后的源模型进行模型量化,得到所述经压缩的模型的步骤,包括:
采用量化感知训练QAT处理所述优化后的源模型,得到所述经压缩的模型。
11.根据权利要求9所述的方法,其特征在于,所述对所述优化后的源模型进行模型量化,得到所述经压缩的模型的步骤,包括:
采用训练后量化PTQ处理所述优化后的源模型,得到所述经压缩的模型。
12.根据权利要求1所述的方法,其特征在于,所述对所述优化后的源模型进行模型压缩,得到经压缩的模型的步骤,包括:
对所述优化后的源模型进行剪枝处理,得到所述经压缩的模型。
13.根据权利要求11或12所述的方法,其特征在于,所述优化处理还包括针对经扩充所述卷积层的输出通道数的所述源模型的训练调优;其中,所述训练调优用于获取训练至模型性能收敛的源模型。
14.一种模型压缩装置,其特征在于,所述装置包括:
优化模块,用于对源模型进行优化处理,得到优化后的源模型;所述优化处理包括扩充所述源模型的至少一层卷积层的输出通道数;
压缩模块,用于对所述优化后的源模型进行模型压缩,得到经压缩的模型。
15.一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至13中任一项所述的方法的步骤。
16.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
17.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310155689.4A CN116108752A (zh) | 2023-02-22 | 2023-02-22 | 模型压缩方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310155689.4A CN116108752A (zh) | 2023-02-22 | 2023-02-22 | 模型压缩方法、装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116108752A true CN116108752A (zh) | 2023-05-12 |
Family
ID=86265411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310155689.4A Pending CN116108752A (zh) | 2023-02-22 | 2023-02-22 | 模型压缩方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116108752A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117710786A (zh) * | 2023-08-04 | 2024-03-15 | 荣耀终端有限公司 | 图像处理方法、图像处理模型的优化方法及相关设备 |
-
2023
- 2023-02-22 CN CN202310155689.4A patent/CN116108752A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117710786A (zh) * | 2023-08-04 | 2024-03-15 | 荣耀终端有限公司 | 图像处理方法、图像处理模型的优化方法及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112418292B (zh) | 一种图像质量评价的方法、装置、计算机设备及存储介质 | |
CN113869420B (zh) | 基于对比学习的文本推荐方法及相关设备 | |
CN113642400A (zh) | 基于2s-agcn的图卷积动作识别方法、装置及设备 | |
CN116108752A (zh) | 模型压缩方法、装置、电子设备和存储介质 | |
CN112905809B (zh) | 知识图谱学习方法和系统 | |
CN113111885A (zh) | 一种动态分辨率实例分割方法及计算机可读存储介质 | |
CN117370488A (zh) | 数据处理方法、装置、电子设备和计算机可读存储介质 | |
CN117332766A (zh) | 流程图生成方法、装置、计算机设备和存储介质 | |
CN114638823B (zh) | 基于注意力机制序列模型的全切片图像分类方法及装置 | |
JP4963341B2 (ja) | 文書間関係可視化方法、可視化装置、可視化プログラム及びそのプログラムを記録した記録媒体 | |
CN114528491A (zh) | 信息处理方法、装置、计算机设备和存储介质 | |
Zhang et al. | ProLFA: Representative prototype selection for local feature aggregation | |
CN112100412A (zh) | 图片检索方法、装置、计算机设备和存储介质 | |
CN115601550B (zh) | 模型确定方法、装置、计算机设备及计算机可读存储介质 | |
AU2021106056A4 (en) | The system and apparatus for image resolution by using deep learning technique. | |
CN116882408B (zh) | 变压器图模型的构建方法、装置、计算机设备和存储介质 | |
CN111563159B (zh) | 文本排序方法及装置 | |
Wang et al. | Compact representation for large-scale unconstrained video analysis | |
CN116230022A (zh) | 音频的转换方法、装置、计算机设备和存储介质 | |
CN116881122A (zh) | 测试案例生成方法、装置、设备、存储介质和程序产品 | |
CN116894964A (zh) | 后期融合物体图像聚类方法、装置和计算机设备 | |
CN116823384A (zh) | 产品推荐方法、装置、设备、存储介质和计算机程序产品 | |
CN116881543A (zh) | 金融资源对象推荐方法、装置、设备、存储介质和产品 | |
CN116861208A (zh) | 音乐粗排模型的训练方法、装置、计算机设备和存储介质 | |
CN118332008A (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 |