CN112016674A - 一种基于知识蒸馏的卷积神经网络的量化方法 - Google Patents
一种基于知识蒸馏的卷积神经网络的量化方法 Download PDFInfo
- Publication number
- CN112016674A CN112016674A CN202010743852.5A CN202010743852A CN112016674A CN 112016674 A CN112016674 A CN 112016674A CN 202010743852 A CN202010743852 A CN 202010743852A CN 112016674 A CN112016674 A CN 112016674A
- Authority
- CN
- China
- Prior art keywords
- convolutional neural
- neural network
- network
- model
- network model
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 177
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000013140 knowledge distillation Methods 0.000 title claims abstract description 47
- 238000011002 quantification Methods 0.000 title description 5
- 238000012549 training Methods 0.000 claims abstract description 53
- 238000013139 quantization Methods 0.000 claims abstract description 48
- 238000005520 cutting process Methods 0.000 claims abstract description 41
- 238000003860 storage Methods 0.000 claims abstract description 12
- 238000007667 floating Methods 0.000 claims description 25
- 238000010206 sensitivity analysis Methods 0.000 claims description 22
- 230000035945 sensitivity Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000007689 inspection Methods 0.000 claims description 3
- 238000012163 sequencing technique Methods 0.000 claims description 2
- 238000007906 compression Methods 0.000 abstract description 21
- 230000006835 compression Effects 0.000 abstract description 19
- 238000004364 calculation method Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 12
- 238000013138 pruning Methods 0.000 description 10
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000009826 distribution Methods 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000004821 distillation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012795 verification Methods 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/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)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
Abstract
本发明提供的基于知识蒸馏的卷积神经网络的量化方法,涉及卷积神经网络技术领域,采用动态搜索的方式获取卷积神经网络每一个网络权重层最佳的裁剪比例和量化位数,对训练好的卷积神经网络依次经过稀疏化、采用教师网络进行知识蒸馏微调训练、逐层量化、再次使用教师网络进行知识蒸馏微调训练,使得在保留网络精度的前提下大幅度压缩卷积神经网络的存储需求和计算需求。在卷积神经网络的量化压缩过程中,使用教师网络进行基于知识蒸馏的微调训练,可以对卷积神经网络的不同网络权重层采用不同的量化精度,并且不会过度损失网络精度,使得在量化过程中可以增大对卷积神经网络的压缩程度。
Description
技术领域
本发明涉及卷积神经网络技术领域,具体涉及一种基于知识蒸馏的卷积神经网络的量化方法。
背景技术
目前国内外大量的视觉应用场景都采用基于卷积神经网络(ConvolutionalNeural Network)进行特征提取,包括在线的图像分类,识别,检测服务,人脸识别,重识别,安防监控等应用场景。基于卷积神经网络的解决方案相对于传统方案具有精度高,泛化能力强等优点,但其需求计算量大,对硬件要求高,对存储要求高,使得该方案的普及和使用都受到了限制。一般的卷积神经网络内部都采用浮点数进行相关运算,近些年,陆续出现采用二值化的方法对卷积神经网络内部的运算进行简化的方案,这样一来,大量的浮点数的加法和乘法计算被简化为二值化的移位和计数,从而大幅度降低了卷积神经网络这一解决方案对计算能力和存储能力的需求。但是,然而二值化计算存在两点局限性,一是导致卷积神经网络的精度大幅度下降,二是一般的二值化方案只能针对不含有深度可分离卷积的卷积神经网络进行;基于上述两点考虑,使得简化二值化的方案并不能在实际场景中使用。
专利CN110175628A公开了一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法,采用教师网络对需要剪枝的网络进行辅助训练,对神经网络实现了一定的压缩和精度恢复,但训练方案较为复杂,训练过程较长。CN110222820A公开的基于权值剪枝和量化的卷积神经网络压缩方法,采用迭代剪枝等方法并将所有的网络权重和网络特征图都量化到8位,将深度残差网络(ResNet)在不损失精度的条件下压缩12倍。该方法只能针对常用的卷积神经网络算法,并限定了网络压缩比例,不能对网络每一网络权重层进行自适应调控。
发明内容
本发明目的在于提供一种基于知识蒸馏的卷积神经网络的量化方法,解决了深度可分离卷积的二值化问题,然后针对二值化的卷积神经网络设计了更为合适的模型优化方法,并应用到ResNet系列网络上,相对于现有技术中的优化方法能大幅度提升基于ResNet系列的卷积神经网络在二值化之后的网络精度,实际用于分类的视觉场景。
为达成上述目的,本发明提出如下技术方案:一种基于知识蒸馏的卷积神经网络的量化方法,包括如下步骤:
1)训练卷积神经网络模型,直到卷积神经网络模型收敛,预设卷积神经网络模型的稀疏度和网络精度;
2)对卷积神经网络模型的每一层网络权重进行敏感性分析,并根据敏感性分析结果对卷积神经网络模型的进行启发式裁剪,获得稀疏化的卷积神经网络模型;
3)采用教师网络对稀疏化的卷积神经网络模型进行基于知识蒸馏的微调训练,获得微调后卷积神经网络模型;所述基于知识蒸馏的微调训练的微调标准为微调后卷积神经网络模型的网络精度达到预设的卷积神经网络模型的网络精度;
4)检查微调后卷积神经网络模型的稀疏度;若微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度,则进行步骤5);若微调后卷积神经网络模型的稀疏度未达到预设的卷积神经网络模型的稀疏度,则对微调后卷积神经网络模型重复执行步骤2)和步骤3),直至微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度;
5)对微调后卷积神经网络模型的每一个网络权重层进行量化的敏感性分析,并根据敏感性分析结果确定微调后卷积神经网络模型的每一层网络权重的量化位数;
6)根据微调后卷积神经网络模型的每一层网络权重的量化位数,对微调后卷积神经网络模型逐层量化,获得量化后卷积神经网络模型;
7)采用教师网络对量化后卷积神经网络模型进行基于知识蒸馏的微调训练,恢复网络精度到预设的卷积神经网络模型的网络精度。
进一步的,所述步骤1)中采用ImageNet数据集训练卷积神经网络模型,卷积神经网络模型为MixNet模型;所述MixNet模型包含K个网络权重层,记为[w1,w2,w3,…,wK],每一个网络权重层包含若干浮点数。
进一步的,所述步骤2)中敏感性分析为对MixNet模型的所有网络权重层设定各层对应的裁剪比例,分别测试各网络权重层在对应的裁剪比例裁剪后的网络精度,分析获得网络精度对不同网络权重层裁剪的敏感性;
所述启发式裁剪为根据网络精度对不同网络权重层裁剪的敏感性,对所有网络权重层的浮点数按照数字从小到大进行排序,设定不同网络权重层的裁剪比例,所有网络权重层的浮点数自小数字侧向大数字侧按照该层对应的裁剪比例将数字置0。
进一步的,所述步骤3)中教师网络为ResNet50模型。
进一步的,所述步骤4)对微调后卷积神经网络模型重复执行步骤2)和步骤3),直至微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度,具体过程为:
在微调后卷积神经网络模型的基础上,再次对微调后卷积神经网络模型的所有网络权重层设定各层对应的裁剪比例,分别测试各网络层权重在对应的裁剪比例裁剪后的网络精度,分析获得网络精度对微调后卷积神经网络模型不同网络权重层裁剪的敏感性;
再根据网络精度对微调后卷积神经网络模型不同网络权重层裁剪的敏感性,重新设定不同网络权重层的裁剪比例,所有网络权重层的浮点数按照数字从小到大进行排序后,将所有网络权重层的浮点数自小数字侧向大数字侧按照该层对应的裁剪比例将数字置0;
每次裁剪后都采用教师网络进行基于知识蒸馏的微调训练和稀疏度检查,保证裁剪后的稀疏度和网络精度都达到预设的卷积神经网络模型的稀疏度和网络精度。
进一步的,所述步骤5)中对微调后卷积神经网络模型的每一层网络权重进行量化的敏感性分析的具体过程为:
将微调后卷积神经网络模型的任一个网络权重层和该网络权重层中间计算的中间变量的值由当前的浮点数采用一定的映射比例s,映射到一设定量化位数的整数上去,分别测试各网络权重层在设定量化位数的整数上映射后的网络精度,分析获得网络精度对不同网络权重层量化位数的敏感性;
根据网络精度对不同网络权重层量化位数的敏感性,选定不同网络权重层的量化位数,保证网络精度的损失降到最小;
所述映射公式如下:
Xint=clamp((round(x/s),INTmin,INTmax)) (3)
其中,Xint表示映射量化后的网络权重层,clamp()函数表示截取数值超过INTmax或者数值小于INTmin的整数,INTmax和INTmin分别为预先设定为整数边界值,round()函数表示取整。
进一步的,所述步骤7)中选取ImageNet数据集和ResNet50模型对量化后卷积神经网络模型进行基于知识蒸馏的微调训练;在微调训练过程中,保证每一次训练迭代后,都对每一个网络权重层进行重新量化,确保其对应的位宽。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现上述的基于知识蒸馏的卷积神经网络的量化方法。
由以上技术方案可知,本发明的技术方案提供的基于知识蒸馏的卷积神经网络的量化方法,获得了如下有益效果:
本发明公开的基于知识蒸馏的卷积神经网络的量化方法,采用动态搜索的方式获取卷积神经网络每一个网络权重层最佳的裁剪比例和量化位数,对训练好的卷积神经网络依次经过稀疏化、采用教师网络进行知识蒸馏微调训练、逐层量化、再次使用教师网络进行知识蒸馏微调训练,使得在保留网络精度的前提下大幅度压缩卷积神经网络的存储需求和计算需求。在卷积神经网络的量化压缩过程中,使用教师网络在进行基于知识蒸馏的微调训练,可以对卷积神经网络的不同网络权重层采用不同的量化精度,并且不会过度损失网络精度,使得在量化过程中可以增大对卷积神经网络的压缩程度。本发明技术方案的相较于现有技术公开的对卷积神经网络的压缩方法,不局限于压缩到8位,由于采用动态搜索的方案获取网络每一个网络权重层最佳的裁剪比例和量化位数,确保了更高的压缩比例,使得本方案在仅使用0.34M模型的基础上达到了ResNet50在ImageNet验证集上的网络精度,相对于ResNet50 98M的计算量压缩了约300倍。
本发明对卷积神经网络的稀疏化是通过在剪枝的基础上又融入量化压缩技术,进一步大幅度压缩了稀疏后的模型的大小,与基于浮点数模型的稀疏化相比,采取量化的稀疏化模型,至少压缩了4倍以上的模型大小。同时,本发明提出了只使用预设的教师模型预测标注值的方案,改进传统知识蒸馏使用的共同训练教师模型与学生模型的方案,简化了训练方案,加速了整个模型的训练过程。此外,本发明的技术方案针对带有深度可分离卷积的轻量级神经网络也可以使用,使用范围更为广泛。
应当理解,前述构思以及在下面更加详细地描述的额外构思的所有组合只要在这样的构思不相互矛盾的情况下都可以被视为本公开的发明主题的一部分。
结合附图从下面的描述中可以更加全面地理解本发明教导的前述和其他方面、实施例和特征。本发明的其他附加方面例如示例性实施方式的特征和/或有益效果将在下面的描述中显见,或通过根据本发明教导的具体实施方式的实践中得知。
附图说明
附图不意在按比例绘制。在附图中,在各个图中示出的每个相同或近似相同的组成部分可以用相同的标号表示。为了清晰起见,在每个图中,并非每个组成部分均被标记。现在,将通过例子并参考附图来描述本发明的各个方面的实施例,其中:
图1为本发明基于知识蒸馏的卷积神经网络的量化方法的流程图;
图2为本发明卷积神经网络基于敏感性分析后裁剪示意图;
图3为本发明卷积神经网络基于敏感性分析后量化示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。
本发明专利申请说明书以及权利要求书中使用的“包括”或者“包含”等类似的词语意指出现在“包括”或者“包含”前面的元件或者物件涵盖出现在“包括”或者“包含”后面列举的特征、整体、步骤、操作、元素和/或组件,并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。“上”“下”“左”“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
基于现有技术中采用二值化方法对卷积神经网络内部的运算进行简化时,具有网络精度低、只能针对不含有深度可分离卷积的卷积神经网络的技术弊端,以及现有技术中对卷积神经网络进行简化处理的方法存在训练方案较为复杂、训练过程较长、压缩比例不高,只能对卷积神经网络整体网络权重层统一剪枝压缩的缺点;本发明旨在提出一种训练方案简化、训练过程缩短,能应用于带有深度可分离卷积的轻量级神经网络的基于知识蒸馏的卷积神经网络的量化方法,对卷积神经网络的每一网络权重层进行自适应调控选择最佳的裁剪比例和量化位数,在对卷积神经网络同时进行稀疏化剪枝和量化压缩的前提下还能够保持卷积神经网络的精度。
结合图1所示,本发明公开的基于知识蒸馏的卷积神经网络的量化方法,包括如下步骤:
1)训练卷积神经网络模型,直到卷积神经网络模型收敛,预设卷积神经网络模型的稀疏度和网络精度;
2)对卷积神经网络模型的每一个网络权重层进行敏感性分析,并根据敏感性分析结果对卷积神经网络模型的进行启发式裁剪,获得稀疏化的卷积神经网络模型;
3)采用教师网络对稀疏化的卷积神经网络模型进行基于知识蒸馏的微调训练,获得微调后卷积神经网络模型;所述基于知识蒸馏的微调训练的微调标准为微调后卷积神经网络模型的网络精度达到预设的卷积神经网络模型的网络精度;
4)检查微调后卷积神经网络模型的稀疏度;若微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度,则进行步骤5);若微调后卷积神经网络模型的稀疏度未达到预设的卷积神经网络模型的稀疏度,则对微调后卷积神经网络模型重复执行步骤2)和步骤3),直至微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度;
5)对微调后卷积神经网络模型的每一个网络权重层进行量化的敏感性分析,并根据敏感性分析结果确定微调后卷积神经网络模型的每一层网络权重的量化位数;6)根据微调后卷积神经网络模型的每一层网络权重的量化位数,对微调后卷积神经网络模型逐层量化,获得量化后卷积神经网络模型;
7)采用教师网络对量化后卷积神经网络模型进行基于知识蒸馏的微调训练,恢复网络精度到预设的卷积神经网络模型的网络精度。
本发明的技术方案主要用于对已经训练好的用于视觉图像分类的卷积神经网络进行稀疏化和量化压缩,降低其存储需求和计算需求,下面结合附图所示的本发明实施流程图和上述步骤对本发明基于知识蒸馏的卷积神经网络的量化方法的每一个流程进行详细的介绍。
关于步骤1),本发明选用的用于视觉图像分类的卷积神经网络为采用ImageNet数据集训练的MixNet模型,训练过程包含前向推导训练集中的图片,对比预测值和标签,计算卷积神经网络参数的更新值,直到卷积神经网络的预测结果收敛,即在ImageNet数据集上错误率不再下降后,获得训练好的MixNet模型。MixNet模型包含K个网络权重层,记为[w1,w2,w3,…,wK],每一个网络权重层包含若干浮点数,例如第i个网络权重层共有Ni个浮点数。
在步骤2)中,对MixNet模型的每一个网络权重层进行敏感性分析是指,对每一个网络权重层进行一个裁剪操作后,即将该网络权重层的部分浮点数置0后,测试裁剪后的网络权重层的网络精度,从而分析测试网络精度对不同网络权重层裁剪的敏感性,例如,同样选择裁剪比例为50%进行裁剪,一些网络权重层裁剪后,整体网络精度下降明显,表明该网络权重层对网络精度敏感;另一些网络权重层裁剪后,网络精度下降不明显,表明该网络权重层对网络精度不敏感。结合图2所示,启发式裁剪即为根据网络精度对不同网络权重层裁剪的敏感性,设定不同网络权重层的裁剪比例,例如,对于不敏感的网络权重层裁剪时可在保持网络精度下降不明显的前提下设置较大裁剪比例,对于敏感的网络权重层裁剪时可在保持网络精度下降不明显的前提下设置较小裁剪比例,使得裁剪后网络对原先的图像分类精度的下降控制在一定的范围内。裁剪过程为对所有网络权重层的浮点数按照数字从小到大进行排序,所有网络权重层的浮点数自小数字侧向大数字侧按照该层对应的裁剪比例将数字置0。
MixNet模型经上述的敏感性分析和裁剪后,获得网络稀疏化的卷积神经网络模型,该模型在原先的图像分类任务上的精度有一定的下降,但整体网络权重层中大量的内容都会变成0。
对于网络稀疏化的卷积神经网络模型,我们采用ImageNet数据集和ResNet50模型作为教师网络进行基于知识蒸馏的微调训练。例如ImageNet数据集的网络训练过程是基于如下的Softmax分类概率和基于KL散度的损失函数的优化函数训练,对MixNet模型K个网络权重层中的任一个网络权重层wi,其在概率分布P中,其分类到类别j的概率预测值y通过如下公式计算,
其中,xT表示Softmax回归模型的参数;
对于MixNet模型K个网络权重层中的任一个网络权重层wi,在概率分布P和Q中,采用KL散度的损失函数DKL(P||Q)衡量网络权重层wi在概率分布P和Q中的差异,损失函数DKL(P||Q)采用如下公式计算:
其中,P(wi)表示网络权重层wi在概率分布P中的概率预测值,Q(wi)表示网络权重层wi在概率分布Q中的概率预测值;
基于知识蒸馏的微调训练则采用教师网络预测出来的标签代替训练图片原本的标签,使得预测图不止一个,即不止一个P(wi)>0;也采用基于KL散度的损失函数,作为本发明方案的优化目标,但也同时针对卷积神经网络中间部分的特征图,也额外对教师网络和目标网络在近似结构的特征图进行对比,也采用基于KL散度的相对墒损失函数进行对比,与原有的优化目标组合,一同微调训练预设的网络MixNet模型。训练过程中,始终保持已经稀疏化的网络权重层权重值一直为0。使用上述方法,对于稀疏化后的模型进行微调训练,使得稀疏化后的网络模型的精度可以提升。
通过重复执行对微调后卷积神经网络模型的剪枝和微调训练,使得微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度。具体操作过程为:在微调后卷积神经网络模型的基础上,再次对微调后卷积神经网络模型的所有网络权重层进行敏感性分析,根据网络精度对微调后卷积神经网络模型不同网络权重层裁剪的敏感性,对网络进行剪枝,剪枝后的网络采用教师网络进行基于知识蒸馏的微调训练和稀疏度检查。例如预设的卷积神经网络模型的稀疏度为整体稀疏75%,若重复执行一次剪枝微调后稀疏度达到则进行下一步骤,若稀疏度没有达到,则再次重复剪枝微调,直至整体稀疏达到75%。
在步骤5)中,对微调后卷积神经网络模型的每一个网络权重层进行量化的敏感性分析是为了对每一个网络权重层选择合适的量化位数,使得量化后的网络在分类任务上的精度下降尽可能小。将微调后卷积神经网络模型的任一个网络权重层和该网络权重层计算的中间变量的值由当前的浮点数采用一定的映射比例s,映射到一设定量化位数的整数上去,分别测试各网络权重层在设定量化位数的整数上映射后的网络精度,分析获得网络精度对不同网络权重层量化位数的敏感性。例如,针对第i个网络权重层的权重wi,由Ni个浮点数构成,记为Mi,Mi=[m1,m2,m3…mNi],选取合适的映射比例s,将这些浮点数映射到Ni个整数Ti上去,Ti=[t1,t2,t3…tNi],采用步骤2)公开的KL散度的损失函数,计算DKL(Mi||Ti)的值。选取的合适的映射比例s,目的在于使得损失函数DKL(Mi||Ti)最小。
结合图3所示,选取10张输入图片,选取量化位数为8,在映射比例s下,将某一个网络权重层计算的中间变量进行量化,包括带符号的整数,其映射范围为-128到127。
映射的公式如下:
Xint=clamp((round(x/s),INTmin,INTmax)) (3)
其中,x表示量化前的浮点数,如mNi;Xint表示量化后的浮点数值,如tNi;clamp()函数表示截取数值超过INTmax或者数值小于INTmin的整数,INTmax和INTmin分别为预先设定为整数边界值,round()函数表示取整。
最后,根据网络精度对不同网络权重层量化位数的敏感性,选定不同网络权重层的量化位数,逐层设置完所有网络权重层的量化位数,保证网络精度的损失降到最小;选取ImageNet数据集和ResNet50模型对MixNet模型进行基于知识蒸馏的微调训练,保证每一次训练迭代后,都对每一个网络权重层进行重新量化,确保其对应的量化位数,经过一定时间的迭代,就可以恢复网络的精度。此时预设的卷机神经网络已经经历了稀疏化和量化压缩,同时也恢复了其分类精度。微调训练后的网络,即为本发明技术方案的输出。
本发明公开的技术方案在采用互联网上开源的MixNet模型为预设网络,ResNet50模型为教师网络的前提下,在具体应用时可以将MixNet模型的存储需求压缩到ResNet50的1/300,理论计算量需求压缩到1/40。相较于现有技术公开的对卷积神经网络的压缩方法,不局限于压缩到8位,由于采用动态搜索的方案获取网络每一个网络权重层最佳的裁剪比例和量化位数,确保了更高的压缩比例,使得本方案在仅使用0.34M模型的基础上达到了ResNet50在ImageNet数据集上的网络精度,相对于ResNet50 98M的计算量压缩了约300倍。
本发明通过在剪枝的基础上又融入量化压缩技术实现对卷积神经网络的稀疏化,相较于现有技术基于浮点数模型的稀疏化,大幅度压缩了稀疏后的模型的大小,至少压缩了4倍以上的模型大小。另外,本发明提出了只使用预设的教师模型进行概率预测值的计算方案,改进传统知识蒸馏使用的共同训练教师模型与学生模型的方案,简化了训练方案,加速了整个模型的训练过程。此外,本发明的技术方案针对带有深度可分离卷积的轻量级神经网络也可以使用,使用范围更为广泛。
本发明公开的基于知识蒸馏的卷积神经网络的量化方法作为计算机程序一软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤和结果。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;存储介质还可以包括上述种类的存储器的组合。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视权利要求书所界定者为准。
Claims (8)
1.一种基于知识蒸馏的卷积神经网络的量化方法,其特征在于,包括如下步骤:
1)训练卷积神经网络模型,直到卷积神经网络模型收敛,预设卷积神经网络模型的稀疏度和网络精度;
2)对卷积神经网络模型的每一个网络权重层进行敏感性分析,并根据敏感性分析结果对卷积神经网络模型的进行启发式裁剪,获得稀疏化的卷积神经网络模型;
3)采用教师网络对稀疏化的卷积神经网络模型进行基于知识蒸馏的微调训练,获得微调后卷积神经网络模型;所述基于知识蒸馏的微调训练的微调标准为微调后卷积神经网络模型的网络精度达到预设的卷积神经网络模型的网络精度;
4)检查微调后卷积神经网络模型的稀疏度;若微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度,则进行步骤5);若微调后卷积神经网络模型的稀疏度未达到预设的卷积神经网络模型的稀疏度,则对微调后卷积神经网络模型重复执行步骤2)和步骤3),直至微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度;
5)对微调后卷积神经网络模型的每一个网络权重层进行量化的敏感性分析,并根据敏感性分析结果确定微调后卷积神经网络模型的每一层网络权重的量化位数;
6)根据微调后卷积神经网络模型的每一层网络权重的量化位数,对微调后卷积神经网络模型逐层量化,获得量化后卷积神经网络模型;
7)采用教师网络对量化后卷积神经网络模型进行基于知识蒸馏的微调训练,恢复网络精度到预设的卷积神经网络模型的网络精度。
2.根据权利要求1所述的基于知识蒸馏的卷积神经网络的量化方法,其特征在于,所述步骤1)中采用ImageNet数据集训练卷积神经网络模型,卷积神经网络模型为MixNet模型;所述MixNet模型包含K个网络权重层,记为[w1,w2,w3,…,wK],每一个网络权重层包含若干浮点数。
3.根据权利要求2所述的基于知识蒸馏的卷积神经网络的量化方法,其特征在于,所述步骤2)中敏感性分析为对MixNet模型的所有网络权重层设定各层对应的裁剪比例,分别测试各网络权重层在对应的裁剪比例裁剪后的网络精度,分析获得网络精度对不同网络权重层裁剪的敏感性;
所述启发式裁剪为根据网络精度对不同网络权重层裁剪的敏感性,对所有网络权重层的浮点数按照数字从小到大进行排序,设定不同网络权重层的裁剪比例,所有网络权重层的浮点数自小数字侧向大数字侧按照该层对应的裁剪比例将数字置0。
4.根据权利要求2所述的基于知识蒸馏的卷积神经网络的量化方法,其特征在于,所述步骤3)中教师网络为ResNet50模型。
5.根据权利要求1所述的基于知识蒸馏的卷积神经网络的量化方法,其特征在于,所述步骤4)对微调后卷积神经网络模型重复执行步骤2)和步骤3),直至微调后卷积神经网络模型的稀疏度达到预设的卷积神经网络模型的稀疏度,具体过程为:
在微调后卷积神经网络模型的基础上,再次对微调后卷积神经网络模型的所有网络权重层设定各层对应的裁剪比例,分别测试各网络层权重在对应的裁剪比例裁剪后的网络精度,分析获得网络精度对微调后卷积神经网络模型不同网络权重层裁剪的敏感性;
再根据网络精度对微调后卷积神经网络模型不同网络权重层裁剪的敏感性,重新设定不同网络权重层的裁剪比例,所有网络权重层的浮点数按照数字从小到大进行排序后,将所有网络权重层的浮点数自小数字侧向大数字侧按照该层对应的裁剪比例将数字置0;
每次裁剪后都采用教师网络进行基于知识蒸馏的微调训练和稀疏度检查,保证裁剪后的稀疏度和网络精度都达到预设的卷积神经网络模型的稀疏度和网络精度。
6.根据权利要求1所述的基于知识蒸馏的卷积神经网络的量化方法,其特征在于,所述步骤5)中对微调后卷积神经网络模型的每一个网络权重层进行量化的敏感性分析的具体过程为:
将微调后卷积神经网络模型的任一个网络权重层和该网络权重层中间计算的中间变量的值由当前的浮点数采用一定的映射比例s,映射到一设定量化位数的整数上去,分别测试各网络权重层在设定量化位数的整数上映射后的网络精度,分析获得网络精度对不同网络权重层量化位数的敏感性;
根据网络精度对不同网络权重层量化位数的敏感性,选定不同网络权重层的量化位数,保证网络精度的损失降到最小;
所述映射公式如下:
Xint = clamp((round(x/s),INTmin,INTmax)) (3)
其中,x表示量化前的浮点数,Xint表示量化后的浮点数,clamp()函数表示截取数值超过INTmax或者数值小于INTmin的整数,INTmax和INTmin分别为预先设定为整数边界值,round()函数表示取整。
7.根据权利要求4所述的基于知识蒸馏的卷积神经网络的量化方法,其特征在于,所述步骤7)中选取ImageNet数据集和ResNet50模型对量化后卷积神经网络模型进行基于知识蒸馏的微调训练;在微调训练过程中,保证每一次训练迭代后,都对每一个网络权重层进行重新量化,确保其对应的位宽。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1-7任一项所述的基于知识蒸馏的卷积神经网络的量化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010743852.5A CN112016674B (zh) | 2020-07-29 | 2020-07-29 | 一种基于知识蒸馏的卷积神经网络的量化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010743852.5A CN112016674B (zh) | 2020-07-29 | 2020-07-29 | 一种基于知识蒸馏的卷积神经网络的量化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112016674A true CN112016674A (zh) | 2020-12-01 |
CN112016674B CN112016674B (zh) | 2024-06-18 |
Family
ID=73498499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010743852.5A Active CN112016674B (zh) | 2020-07-29 | 2020-07-29 | 一种基于知识蒸馏的卷积神经网络的量化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112016674B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112241455A (zh) * | 2020-12-17 | 2021-01-19 | 之江实验室 | 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台 |
CN112766422A (zh) * | 2021-03-15 | 2021-05-07 | 山东大学 | 一种基于轻量级人脸识别模型的隐私保护方法 |
CN113313250A (zh) * | 2021-05-13 | 2021-08-27 | 中国科学院计算技术研究所 | 采用混合精度量化与知识蒸馏的神经网络训练方法及系统 |
CN113408723A (zh) * | 2021-05-19 | 2021-09-17 | 北京理工大学 | 一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法 |
CN113469344A (zh) * | 2021-07-23 | 2021-10-01 | 成都数联云算科技有限公司 | 深度卷积神经网络模型改进方法及系统及装置及介质 |
WO2022116441A1 (zh) * | 2020-12-03 | 2022-06-09 | 平安科技(深圳)有限公司 | 基于卷积神经网络的bert模型的微调方法及装置 |
WO2022126439A1 (zh) * | 2020-12-16 | 2022-06-23 | 华为技术有限公司 | 模型协作蒸馏训练的方法及装置和设备、可读存储介质 |
WO2022198606A1 (zh) * | 2021-03-26 | 2022-09-29 | 深圳市大疆创新科技有限公司 | 深度学习模型的获取方法、系统、装置及存储介质 |
US11501171B2 (en) | 2020-12-17 | 2022-11-15 | Zhejiang Lab | Method and platform for pre-trained language model automatic compression based on multilevel knowledge distillation |
WO2023050707A1 (zh) * | 2021-09-28 | 2023-04-06 | 苏州浪潮智能科技有限公司 | 网络模型量化方法、装置、计算机设备以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109635936A (zh) * | 2018-12-29 | 2019-04-16 | 杭州国芯科技股份有限公司 | 一种基于重训练的神经网络剪枝量化方法 |
CN110175628A (zh) * | 2019-04-25 | 2019-08-27 | 北京大学 | 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法 |
CN110874631A (zh) * | 2020-01-20 | 2020-03-10 | 浙江大学 | 一种基于特征图稀疏化的卷积神经网络剪枝方法 |
US20200134461A1 (en) * | 2018-03-20 | 2020-04-30 | Sri International | Dynamic adaptation of deep neural networks |
CN111178525A (zh) * | 2019-12-24 | 2020-05-19 | 重庆邮电大学 | 一种基于剪枝的卷积神经网络压缩方法、系统及介质 |
WO2020131968A1 (en) * | 2018-12-18 | 2020-06-25 | Movidius Ltd. | Neural network compression |
-
2020
- 2020-07-29 CN CN202010743852.5A patent/CN112016674B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200134461A1 (en) * | 2018-03-20 | 2020-04-30 | Sri International | Dynamic adaptation of deep neural networks |
WO2020131968A1 (en) * | 2018-12-18 | 2020-06-25 | Movidius Ltd. | Neural network compression |
CN109635936A (zh) * | 2018-12-29 | 2019-04-16 | 杭州国芯科技股份有限公司 | 一种基于重训练的神经网络剪枝量化方法 |
CN110175628A (zh) * | 2019-04-25 | 2019-08-27 | 北京大学 | 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法 |
CN111178525A (zh) * | 2019-12-24 | 2020-05-19 | 重庆邮电大学 | 一种基于剪枝的卷积神经网络压缩方法、系统及介质 |
CN110874631A (zh) * | 2020-01-20 | 2020-03-10 | 浙江大学 | 一种基于特征图稀疏化的卷积神经网络剪枝方法 |
Non-Patent Citations (2)
Title |
---|
邵伟平;王兴;曹昭睿;白帆;: "基于MobileNet与YOLOv3的轻量化卷积神经网络设计", 计算机应用, no. 1, 10 July 2020 (2020-07-10) * |
靳丽蕾;杨文柱;王思乐;崔振超;陈向阳;陈丽萍;: "一种用于卷积神经网络压缩的混合剪枝方法", 小型微型计算机系统, no. 12, 11 December 2018 (2018-12-11) * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022116441A1 (zh) * | 2020-12-03 | 2022-06-09 | 平安科技(深圳)有限公司 | 基于卷积神经网络的bert模型的微调方法及装置 |
WO2022126439A1 (zh) * | 2020-12-16 | 2022-06-23 | 华为技术有限公司 | 模型协作蒸馏训练的方法及装置和设备、可读存储介质 |
US11501171B2 (en) | 2020-12-17 | 2022-11-15 | Zhejiang Lab | Method and platform for pre-trained language model automatic compression based on multilevel knowledge distillation |
CN112241455A (zh) * | 2020-12-17 | 2021-01-19 | 之江实验室 | 基于多层级知识蒸馏预训练语言模型自动压缩方法及平台 |
CN112766422A (zh) * | 2021-03-15 | 2021-05-07 | 山东大学 | 一种基于轻量级人脸识别模型的隐私保护方法 |
CN112766422B (zh) * | 2021-03-15 | 2022-11-15 | 山东大学 | 一种基于轻量级人脸识别模型的隐私保护方法 |
WO2022198606A1 (zh) * | 2021-03-26 | 2022-09-29 | 深圳市大疆创新科技有限公司 | 深度学习模型的获取方法、系统、装置及存储介质 |
CN113313250A (zh) * | 2021-05-13 | 2021-08-27 | 中国科学院计算技术研究所 | 采用混合精度量化与知识蒸馏的神经网络训练方法及系统 |
CN113313250B (zh) * | 2021-05-13 | 2023-11-24 | 中国科学院计算技术研究所 | 采用混合精度量化与知识蒸馏的神经网络训练方法及系统 |
CN113408723A (zh) * | 2021-05-19 | 2021-09-17 | 北京理工大学 | 一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法 |
CN113408723B (zh) * | 2021-05-19 | 2023-04-07 | 北京理工大学 | 一种面向遥感应用的卷积神经网络剪枝和量化同步压缩方法 |
CN113469344A (zh) * | 2021-07-23 | 2021-10-01 | 成都数联云算科技有限公司 | 深度卷积神经网络模型改进方法及系统及装置及介质 |
CN113469344B (zh) * | 2021-07-23 | 2024-04-16 | 成都数联云算科技有限公司 | 深度卷积神经网络模型改进方法及系统及装置及介质 |
WO2023050707A1 (zh) * | 2021-09-28 | 2023-04-06 | 苏州浪潮智能科技有限公司 | 网络模型量化方法、装置、计算机设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112016674B (zh) | 2024-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112016674A (zh) | 一种基于知识蒸馏的卷积神经网络的量化方法 | |
CN110619385B (zh) | 基于多级剪枝的结构化网络模型压缩加速方法 | |
CN111079683A (zh) | 基于卷积神经网络的遥感图像云雪检测方法 | |
CN111723915B (zh) | 一种基于深度卷积神经网络的目标检测方法 | |
CN112541532B (zh) | 基于密集连接结构的目标检测方法 | |
CN111833322B (zh) | 一种基于改进YOLOv3的垃圾多目标检测方法 | |
CN114120041B (zh) | 一种基于双对抗变分自编码器的小样本分类方法 | |
KR20220036330A (ko) | 데이터 없는 사후 훈련 네트워크 양자화 및 사전 훈련된 기계 학습 모델에 기반한 합성 데이터 생성을 위한 방법 및 장치 | |
CN113065525B (zh) | 年龄识别模型训练方法、人脸年龄识别方法及相关装置 | |
CN113408561B (zh) | 模型生成方法、目标检测方法、装置、设备及存储介质 | |
CN114255403A (zh) | 基于深度学习的光学遥感图像数据处理方法及系统 | |
CN111178438A (zh) | 一种基于ResNet101的天气类型识别方法 | |
CN110647990A (zh) | 基于灰色关联分析的深度卷积神经网络模型的裁剪方法 | |
CN113947206A (zh) | 一种深度神经网络量化方法及系统及装置及介质 | |
CN111967535A (zh) | 一种储粮管理场景温度传感器故障诊断方法及其诊断装置 | |
CN110991247B (zh) | 一种基于深度学习与nca融合的电子元器件识别方法 | |
CN108764097B (zh) | 一种基于分段稀疏表示的高光谱遥感图像目标识别方法 | |
CN117392406A (zh) | 一种单阶段实时目标检测模型低位宽混合精度量化方法 | |
CN111652264B (zh) | 基于最大均值差异的负迁移样本筛选方法 | |
CN117218545A (zh) | 基于LBP特征与改进Yolov5的雷达图像检测方法 | |
CN112288744A (zh) | 基于整型推理量化cnn的sar图像变化检测方法 | |
CN116363469A (zh) | 一种少样本红外目标检测方法、装置和系统 | |
CN114611665A (zh) | 基于权重振荡影响度的多精度分层量化方法及装置 | |
CN113743593A (zh) | 神经网络量化方法、系统、存储介质及终端 | |
CN115937565A (zh) | 基于自适应l-bfgs算法的高光谱图像分类方法 |
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 |