CN114626527B - 基于稀疏约束再训练的神经网络剪枝方法及装置 - Google Patents
基于稀疏约束再训练的神经网络剪枝方法及装置 Download PDFInfo
- Publication number
- CN114626527B CN114626527B CN202210299661.3A CN202210299661A CN114626527B CN 114626527 B CN114626527 B CN 114626527B CN 202210299661 A CN202210299661 A CN 202210299661A CN 114626527 B CN114626527 B CN 114626527B
- Authority
- CN
- China
- Prior art keywords
- pruning
- gamma
- parameters
- layer
- network
- 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.)
- Active
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 176
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000010606 normalization Methods 0.000 claims abstract description 96
- 238000012549 training Methods 0.000 claims abstract description 83
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000001174 ascending effect Effects 0.000 claims abstract description 17
- 108091006146 Channels Proteins 0.000 claims description 43
- 230000006870 function Effects 0.000 claims description 26
- 238000005457 optimization Methods 0.000 claims description 16
- 238000007781 pre-processing Methods 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 9
- 230000004913 activation Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000009966 trimming Methods 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 210000005036 nerve Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明涉及一种基于稀疏约束再训练的神经网络剪枝方法及装置,所述方法包括获取训练集;构建神经网络,将所述神经网络中每个批归一化层中的gamma参数进行L1‑norm约束处理,然后对神经网络进行训练;将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数升序排列;获取剪枝阈值,根据所述剪枝阈值和gamma参数确定剪枝后的gamma参数所在归一化层的通道数量,输出剪枝网络。本发明不需要重新开始对一个新网络进行增加约束的训练,只需要用约束条件对已有的网络进行微调少数轮次,相比不进行剪枝或者全局剪枝后再单独剪枝,更加快速及合理。
Description
技术领域
本发明属于神经网络技术领域,具体涉及一种基于稀疏约束再训练的神经网络剪枝方法及装置。
背景技术
在各种视觉领域,如检测、识别、分割等任务,使用深度神经网络已经成为主要的方法。通过各种不同的结构、模块,增加网络的深度和宽度以及网络整体的参数的数量,上述检测、识别等任务已经达到了一个较高的准确度。但是,在手机及嵌入式设备上,部署这样的深度神经网络是一项有挑战的工作。由于移动设备自身的原因,并没有很强大的算力(FLOPs每秒浮点计算次数)和充足的内存来给较大的深度神经网络提供必要的硬件支持;而往往为了任务的准确性,待部署的深度神经网络往往比较大,这就造成了一个矛盾。此外,对于具体项目要求的实时性,大的深度神经网络也难以满足。
深度神经网络压缩技术正是为了解决这一问题而提出的技术。网络压缩可以缩小既有的深度神经网络的参数数量和计算量,但对其准确度影响较小。深度网络压缩技术中的剪枝技术一直是一个非常受欢迎的领域。剪枝形象的把网络看成一个待剪枝的树枝,使用不同判别标准来对这些参数进行删减,并把剩余的参数复制到一个新的结构上。剪枝可以分为元素级剪枝、向量剪枝、核剪枝、通道剪枝及层剪枝。其中通道剪枝由于其剪枝后的网络不需要新的框架来适配,并且可以在原框架内使用原有的结构和加速技术,不需要额外的硬件来对剪枝后的结构进行匹配。
相关技术中,已有的剪枝算法存在以下问题:
1,直接使用卷积核的权值不能很好的表征整体通道的重要性。一个低层的卷积虽然值在本层比较低,但通过后续多层卷积以后,可能会在最后的特征输出有较大的值;此外,逐层的剪枝没有整体的考虑网络的信息流向及卷积神经网络的特性,需要调整的超参较多;
2,残差网络的每个网络阶段的最后一层较多的算法并未剪枝,这对于较深的网络来说还是会有较多的参数冗余,加速不够彻底;此外在设置较高的剪枝率的基础上,依然有较大的参数量和计算量,网络推理速度也会受到影响,不利于后续实时性的要求;
3,对于参数的微调和设置,需要大量时间去微调网络,从而对当前剪枝网络的评估工作就比较繁琐,不利于剪枝模型的快速迭代和参数的更新,整体步骤比较耗时;
4,直接使用归一化层的参数而不加以修正来作为剪枝的权值来进行剪枝,由于gamma参数比较接近,不能很好的区分卷积的重要性,通过设置一个阈值的方法剪枝比较容易去掉太多或者太少参数,影响剪枝模型最后的准确度或者实时性;
5,评估剪枝网络的工作需要大量微调时间,不利于快速迭代。
发明内容
有鉴于此,本发明的目的在于克服现有技术的不足,提供一种基于稀疏约束再训练的神经网络剪枝方法及装置,以解决现有技术中剪枝算法存在的问题。
为实现以上目的,本发明采用如下技术方案:一种基于稀疏约束再训练的神经网络剪枝方法,包括:
获取训练数据,对所述训练数据进行预处理,得到训练集;
构建神经网络,其中,所述神经网络包括多个堆叠的卷积块,所述卷积块包括卷积层、批归一化层以及激活响应层;
将所述神经网络中每个批归一化层中的gamma参数进行L1-norm约束处理,然后采用预设的优化函数和所述训练集对所述神经网络进行训练,输出除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数及每个阶段最后一个卷积层后的批归一化层的gamma参数;
将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数升序排列;
获取剪枝阈值,根据所述剪枝阈值和gamma参数确定剪枝后的gamma参数所在归一化层的通道数量,输出剪枝网络。
进一步的,在输出剪枝网络之前,还包括:
判断所述剪枝网络是否满足预设准确度;
如果所述剪枝网络的准确度满足预设条件,则输出剪枝网络;
否则,继续对神经网络进行训练。
进一步的,所述训练数据为图像数据,所述对所述训练数据进行预处理,包括:
对图像数据设定标签;
从所述标签中选取预设百分比的图像数据作为训练集,其余的图像数据作为测试集;
对所述训练集和测试集均进行通道顺序改变处理。
进一步的,所述优化函数为
其中,l(f(x,W),y)为交叉熵函数,g(λ)为L1-norm约束,x、y为对应的训练数据的输入及网络预测输出,W表示网络中的所有学习参数。
进一步的,预设优化函数,包括
采用以下方式对所述神经网络中的批归一化层进行前向传导并计算输出值,并利用输出值参与到整个网络的训练过程中;
获取优化函数为
其中,ybn为批归一化层的输出值,xbn为批归一化层层的输入值,ε为一个极小值,可以设为1-10,β为网络在训练过程中学习到的偏移值,l(f(x,W),y)为交叉熵函数,g(λ)为L1-norm约束,x、y为对应的训练数据的输入及真实值,W表示网络中的所有学习参数。
进一步的,批归一化层的gamma参数包括第一部分和第二部分,第一部分为除每个阶段的最后一个卷积层所属的批归一化层的gamma参数及和第一部分相加的归一化层的gamma参数为第二部分;所述将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数以如下方式进行升序排列;
Gs=Sort(concat(Gsi,λbi*Gb))
其中,Gs为合并后的gamma参数升序排列,Gsi为神经网络中的第i阶段的剪枝权重,λbi为每个阶段的第二部分的权值,Gb第二部分的gamma参数。
进一步的,所述获取剪枝阈值,包括:
预设剪枝比例,获取神经网络的剪枝权重和第二部分的gamma参数;
根据神经网络的剪枝权重和第二部分的gamma参数计算得到合并后的gamma参数;
计算所述合并后的gamma参数的长度,根据所述长度计算所述剪枝阈值。进一步的,所述训练集和测试集采用如下方式进行通道顺序改变处理,
Pout=(Pin-127.5)/128;
Pout为预处理后得到的图像数据,Pin为预处理之前的图像数据。
本申请实施例提供一种基于稀疏约束再训练的神经网络剪枝装置,包括:
获取模块,用于获取训练数据,对所述训练数据进行预处理,得到训练集;
构建模块,用于构建神经网络,其中,所述神经网络包括多个堆叠的卷积块,所述卷积块包括卷积层、批归一化层以及激活响应层;
处理模块,用于将所述神经网络中每个批归一化层中的gamma参数进行L1-norm约束处理,然后采用预设的优化函数和所述训练集对所述神经网络进行训练,输出除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数及每个阶段最后一个卷积层后的批归一化层的gamma参数;
合并模块,用于将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数升序排列;
输出模块,用于获取剪枝阈值,根据所述剪枝阈值和gamma参数确定剪枝后的gamma参数所在归一化层的通道数量,输出剪枝网络。
本发明采用以上技术方案,能够达到的有益效果包括:
1,不需要重新开始对一个新网络进行增加约束的训练,只需要用约束条件对已有的网络进行微调少数轮次;
2,残差类网络的每个阶段的最后的卷积层所属的归一化层的gamma参数按照取对应最大值或加权平均的方式,作为一个独立的模块加入到全局的gamma参数里,统一进行比较以及剪枝,相比不进行剪枝或者全局剪枝后再单独剪枝,更加快速及合理;
3,对每个阶段网络的最后卷积层所属的归一化层的权值增加权重参数,可以灵活调整输出最终剪枝网络的执行时间和参数数量,在其剪枝较多参数影响整个剪枝模型的准确度时,可以通过调整权重来调整最终输出,获得在时间和准确度上更好更均衡的剪枝网络;
4,固定剪枝网络的其他层参数,只微调归一化层相关参数,通过微调少量次剪枝后网络就可以得到和微调多次后的剪枝网络相近的准确率。根据此准确率和剪枝网络的参数量使剪枝方案迭代快速,能大量剪枝备选的剪枝网络,且能稳定复现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于稀疏约束再训练的神经网络剪枝方法的步骤示意图;
图2为本发明基于稀疏约束再训练的神经网络剪枝方法的流程示意图;
图3为本发明实施例神经网络的结构示意图;
图4为本发明对网络中一个卷积核为4*2*3*3的卷积核进行剪枝的示意图,Cin1表示为任何的正整数输入通道数,Cout1是任何的正整数的输出通道数;
图5为本发明基于稀疏约束再训练的神经网络剪枝装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
现有技术中,已有的剪枝算法主要有以下几种:
1对于预训练的网络的每一层参数,按照通道计算该通道的所有卷积核的值,在本层范围内按照值的大小排序,按照公式1计算对应的阈值,小于阈值的将被删除对应的卷积核通道及上下层相对应的卷积核通道,其中,threshi表示第i层剪枝阈值,VSort_i表示第i层卷积核通道的权重,ceil表示向上取整,Pc表示剪枝率;如此循环的对每一层进行剪枝。
threshi=VSort_i(ceil(Pc*Length(VSort_i))) (1)
2直接使用参数权值对整个网络的卷积层进行剪枝;首先是按照卷积核的值计算每层各通道的权值并进行全局升序排序,最后按照公式2计算阈值,小于剪枝阈值的权值对应的卷积核通道剪去。
threshglobal=VSort_global(ceil(Pratio*Length(VSort_global))) (2)
3,使用残差网络中除每个阶段最后的卷积层的每个卷积层后的归一化层的gamma参数作为剪枝权值,按照公式2计算剪枝阈值,进行剪枝;在剪枝完毕后,根据每个阶段剪枝的平均值再对每个阶段最后的卷积层执行剪枝操作,完成最终剪枝任务;
4,首先对输入的网络中的归一化层的gamma参数加入L1-norm约束训练。训练完毕后,使用残差网络中除每个阶段最后的卷积层的每个卷积层后的归一化层的gamma参数作为剪枝权值,按照公式2计算剪枝阈值,进行剪枝。
下面结合附图介绍本申请实施例中提供的一个具体的基于稀疏约束再训练的神经网络剪枝方法及装置。
如图1和图2所示,本申请实施例中提供的基于稀疏约束再训练的神经网络剪枝方法,包括:
S101,获取训练数据,对所述训练数据进行预处理,得到训练集;
一些实施例中,所述训练数据为图像数据,所述对所述训练数据进行预处理,包括:
对图像数据设定标签;
从所述标签中选取预设百分比的图像数据作为训练集,其余的图像数据作为测试集;
对所述训练集和测试集均进行通道顺序改变处理。
具体的,准备训练数据图像95689类共约600万张图像,然后对不同的类分别给95689类图像标签从0到95688;取其中90%的样本86120类图像作为训练集,剩下10%样本9569类图像作为测试集,对样本内所有图像按照公式3做预处理,然后改变通道顺序,从图像高,宽,通道的数据顺序变为图像通道,高,宽。
Pout=(Pin-127.5)/128 (3)
S102,构建神经网络,其中,所述神经网络包括多个堆叠的卷积块,所述卷积块包括卷积层、批归一化层以及激活响应层;
可以理解的是,神经网络中,如图3所示,每个方块表示网络中的一个卷积模块,一个卷积模块一般包括一个卷积层,一个批归一化层和一个激活响应层;方块内数字的意义表示该模块的卷积所有的参数数量及输入和输出及卷积核的具体值。例如256x64x3x3,按照顺序来解读可得如下结果:该卷积模块输出通道是256,输入是64,卷积核大小是3*3。
S103,将所述神经网络中每个批归一化层中的gamma参数进行L1-norm约束处理,然后采用预设的优化函数和所述训练集对所述神经网络进行训练,输出除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数及每个阶段最后一个卷积层后的批归一化层的gamma参数;
一些实施例中,设定好训练优化函数,并对每层归一化函数的gamma参数加入L1-norm约束,L1-norm按照公式4进行计算。
g(r)=|r| (4)
本申请中加载已有的残差网络权重Resnet100,网络训练使用pytorch以及nvidia的GPU硬件加速,同时设置如表1的训练参数;
表1训练参数
参数类型 | 参数值 |
学习率 | 1e-3 |
训练轮数 | 3~5 |
优化器 | Sgd |
输入批次数量 | 128 |
Lambda | 1e-4 |
批归一化层按照公式5对输入做处理,然后输出处理后的值进入下一个网络模块中。网络中所有的批归一化层的gamma参数分为两部分,第一部分为除每个阶段的最后一个卷积层所属的批归一化层的gamma参数及和它相加的归一化层的gamma参数,首先获得对应的剪枝权重,记为Gsi,i表示网络中的第i阶段;除第一部分剩下的所有批归一化层的gamma参数为第二部分,记作Gb;其中,Gsi按照公式5和Gb进行合并后,并升序排列得到Gs,λbi表示每个阶段的第二部分的权值;
也就是说,训练完成后,所有的卷积层的通道的重要性由其其后的归一化层的gamma参数决定,每个阶段的最后的卷积层的通道的重要性由本阶段所有卷积模块的最后卷积层齐后的归一化层gamma参数决定。
对所述神经网络中的批归一化层进行前向传导并计算输出值,并利用输出值参与到整个网络的训练过程中,得到优化函数;
优化函数如公式5所示,开始微调训练。
其中,ybn为批归一化层的输出值,xbn为批归一化层层的输入值,ε为一个极小值,可以设为1e-10,β为网络在训练过程中学习到的偏移值,l(f(x,W),y)是交叉熵函数,g(λ)表示L1-norm约束,x、y是对应的训练数据的输入及网络预测输出,W表示网络中的所有学习参数。
需要说明的是,公式6中的第一项f(x,W)计算时,遇到网络中的批归一化层时,会调用公式5计算并得到输出值。通过逐层计算网络中的每一层输出值而最终得到整个网络的输出值f(x,W),接着根据输出值和真实值之间的差异l以及第二项的针对归一化层gamma参数约束函数来计算最终的网络预测误差L,最后调用优化器和学习率设置函数来执行最终的网络参数学习和优化。
S104,将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数升序排列;
需要说明的是,批归一化层的gamma参数包括第一部分和第二部分,第一部分为除每个阶段的最后一个卷积层所属的批归一化层的gamma参数及和第一部分相加的归一化层的gamma参数为第二部分;所述将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数以如下方式进行升序排列;
Gs=Sort(concat(Gsi,λbi*Gb)) (7)
其中,Gs为合并后的gamma参数升序排列,Gsi为神经网络中的第i阶段的剪枝权重,λbi为每个阶段的第二部分的权值,Gb第二部分的gamma参数。
S105,获取剪枝阈值,根据所述剪枝阈值和gamma参数确定剪枝后的gamma参数所在归一化层的通道数量,输出剪枝网络。
一些实施例中,所述获取剪枝阈值,包括:
预设剪枝比例,获取神经网络的剪枝权重和第二部分的gamma参数;
根据神经网络的剪枝权重和第二部分的gamma参数计算得到合并后的gamma参数;
计算所述合并后的gamma参数的长度,根据所述长度计算所述剪枝阈值。
具体的,本申请中设定剪枝比例Pc为80%(一般在50%~80%区间),提取出神经网络内Gsi及Gb,按照公式8计算得到一个一维向量Gs,Gs内的值索引较小的值意味着该gamma值表示的通道在整个网络的重要性比较低,可以安全的删除,对最终的网络准确度影响较小;而索引值比较大的gamma值则表示其对应的通道在网络中比较重要,保留级别比较高。
如图4所示,通过计算得知Gs的长度为Lgs,则可按照公式1计算得到全局剪枝阈值thresh;然后对全网络的批归一化层的gamma参数进行遍历,如其值小于thresh,则标记为0,否则标记为1,统计每层批归一化层标记为1的通道的个数,此即为剪枝后的该归一化层的通道数量,也是该归一化层上一层卷积层的通道数量,比更改与之相对应的上一个模块的归一化层通道数量。
对输出的剪枝网络增加归一化层的学习率,然后微调0.5轮左右,计算其执行时间和准确度。如满足预设的条件,则结束剪枝,输出剪枝后网络,并对应的拷贝现在还有的通道的权值到新剪枝网络上。若不满足条件,可以更改相关超参,进行多次剪枝。
对输出的最终剪枝模型进行微调后,得到表2的相关测试值。
表2相关测试值
Resnet100 | 参数数量 | 乘加次数 | 单次执行时间 | 准确度 |
剪枝前 | 37.05M | 6.83G | 105ms | 99.5% |
剪枝后 | 5.31M | 0.27G | 42ms | 99.2% |
一些实施例中,在输出剪枝网络之前,还包括:
判断所述剪枝网络是否满足预设准确度;
如果所述剪枝网络的准确度满足预设条件,则输出剪枝网络;
否则,继续对神经网络进行训练。
本申请基于获得的剪枝网络,微调若干次后,计算该剪枝网络的推理时间及准确度,如不满足预设条件,则调整Pc及Gsi的权重,重新进行训练,再进行测试,直到满足预设剪枝标准为止。
本申请首先准备训练数据,然后对数据进行预处理,然后用预处理后的数据按照公式对残差网络进行训练,同时按照上述方式提取所有批归一化层的gamma参数并进行升序排列,通过剪枝率计算剪枝阈值,接着把小于阈值的gamma参数对应的通道删去,同时在生成的剪枝网络上复制对应的权值,完成剪枝。最后微调该剪枝网络后测试其执行时间和准确度。
本申请提供的技术方案解决了网络精度和执行时间不能很好的均衡的问题,同时加速了整个剪枝过程,方便在工程上提供合适的剪枝模型,快速迭代。不仅可以针对残差类的网络所有网络层的参数较快的进行剪枝,最大程度的减少冗余参数,还能灵活的调整剪枝结果,获得和实际使用要求相近的剪枝网络,同时保证准确度和复现稳定性。
如图5所示,本申请实施例提供一种基于稀疏约束再训练的神经网络剪枝装置,包括:
获取模块501,用于获取训练数据,对所述训练数据进行预处理,得到训练集;
构建模块502,用于构建神经网络,其中,所述神经网络包括多个堆叠的卷积块,所述卷积块包括卷积层、批归一化层以及激活响应层;
处理模块503,用于将所述神经网络中每个批归一化层中的gamma参数进行L1-norm约束处理,然后采用预设的优化函数和所述训练集对所述神经网络进行训练,输出除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数及每个阶段最后一个卷积层后的批归一化层的gamma参数;
合并模块504,用于将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数升序排列;
输出模块505,用于获取剪枝阈值,根据所述剪枝阈值和gamma参数确定剪枝后的gamma参数所在归一化层的通道数量,输出剪枝网络。
本申请提供的基于稀疏约束再训练的神经网络剪枝装置的工作原理为,获取模块501获取训练数据,对所述训练数据进行预处理,得到训练集;构建模块502构建神经网络,其中,所述神经网络包括多个堆叠的卷积块,所述卷积块包括卷积层、批归一化层以及激活响应层;处理模块503将所述神经网络中每个批归一化层中的gamma参数进行L1-norm约束处理,然后采用预设的优化函数和所述训练集对所述神经网络进行训练,输出除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数及每个阶段最后一个卷积层后的批归一化层的gamma参数;合并模块504将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数升序排列;输出模块505获取剪枝阈值,根据所述剪枝阈值和gamma参数确定剪枝后的gamma参数所在归一化层的通道数量,输出剪枝网络。
优选的,本申请提供的装置,还包括:
判断模块,用于判断所述剪枝网络是否满足预设准确度;
如果所述剪枝网络的准确度满足预设条件,则输出剪枝网络;
否则,继续对神经网络进行训练。
综上所述,本发明提供一种基于稀疏约束再训练的神经网络剪枝方法及装置,具有以下有益效果:
1,不需要重新开始对一个新网络进行增加约束的训练,只需要用约束条件对已有的网络进行微调少数轮次;
2,残差类网络的每个阶段的最后的卷积层所属的归一化层的gamma参数按照取对应最大值、加权平均或对应通道求交集、并集的方式,作为一个独立的模块加入到全局的gamma参数里,统一进行比较以及剪枝,相比不进行剪枝或者全局剪枝后再单独剪枝,更加快速及合理;
3,对每个阶段网络的最后卷积层所属的归一化层的权值增加权重参数,可以灵活调整输出最终剪枝网络的执行时间和参数数量,在其剪枝较多参数影响整个剪枝模型的准确度时,可以通过调整权重来调整最终输出,获得在时间和准确度上更好更均衡的剪枝网络;
4,固定剪枝网络的其他层参数,只微调归一化层相关参数,通过微调少量次剪枝后网络就可以得到和微调多次后的剪枝网络相近的准确率,根据这个准确率和参数量,使剪枝方案迭代快速,能大量剪枝备选的剪枝网络,且能稳定复现。
可以理解的是,上述提供的方法实施例与上述的装置实施例对应,相应的具体内容可以相互参考,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令方法的制造品,该指令方法实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (7)
1.一种基于稀疏约束再训练的神经网络剪枝方法,其特征在于,包括:
获取训练数据,对所述训练数据进行预处理,得到训练集;
构建神经网络,其中,所述神经网络包括多个堆叠的卷积块,所述卷积块包括卷积层、批归一化层以及激活响应层;
将所述神经网络中每个批归一化层中的gamma参数进行L1-norm约束处理,然后采用预设的优化函数和所述训练集对所述神经网络进行训练,输出除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数及每个阶段最后一个卷积层后的批归一化层的gamma参数;
将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数升序排列;
获取剪枝阈值,根据所述剪枝阈值和gamma参数确定剪枝后的gamma参数所在归一化层的通道数量,输出剪枝网络;
批归一化层的gamma参数包括第一部分和第二部分,第一部分为除每个阶段的最后一个卷积层所属的批归一化层的gamma参数及和它相加的归一化层的gamma参数;除第一部分剩下的所有归一化层的gamma参数为第二部分;将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数以如下方式进行升序排列;
其中,为合并后的gamma参数升序排列,/>为神经网络中的第i阶段的剪枝权重,/>为每个阶段的第二部分的权值,/>第二部分的gamma参数;
所述训练数据为图像数据,所述对所述训练数据进行预处理,包括:
对图像数据设定标签;
从所述标签中选取预设百分比的图像数据作为训练集,其余的图像数据作为测试集;
对所述训练集和测试集均进行通道顺序改变处理。
2.根据权利要求1所述的方法,其特征在于,在输出剪枝网络之前,还包括:
判断所述剪枝网络是否满足预设准确度;
如果所述剪枝网络的准确度满足预设条件,则输出剪枝网络;
否则,继续对神经网络进行训练。
3.根据权利要求1所述的方法,其特征在于,预设优化函数,包括
采用以下方式对所述神经网络中的批归一化层进行前向传导并计算输出值,并利用输出值参与到整个网络的训练过程中;
获取优化函数为
其中,为批归一化层的输出值,/>为批归一化层层的输入值,/>为一个极小值,可以设为1e-10,/>为网络在训练过程中学习到的偏移值,/>为交叉熵函数,/>为L1-norm约束,x、y为对应的训练数据的输入及真实值,W表示网络中的所有学习参数。
4.根据权利要求1所述的方法,其特征在于,所述获取剪枝阈值,包括:
预设剪枝比例,获取神经网络的剪枝权重和第二部分的gamma参数;
根据神经网络的剪枝权重和第二部分的gamma参数计算得到合并后的gamma参数;
计算所述合并后的gamma参数的长度,根据所述长度计算所述剪枝阈值。
5.根据权利要求2所述的方法,其特征在于,所述训练集和测试集采用如下方式进行通道顺序改变处理,
;
为预处理后得到的图像数据,/>为预处理之前的图像数据。
6.一种基于稀疏约束再训练的神经网络剪枝装置,其特征在于,包括:
获取模块,用于获取训练数据,对所述训练数据进行预处理,得到训练集;
构建模块,用于构建神经网络,其中,所述神经网络包括多个堆叠的卷积块,所述卷积块包括卷积层、批归一化层以及激活响应层;
处理模块,用于将所述神经网络中每个批归一化层中的gamma参数进行L1-norm约束处理,然后采用预设的优化函数和所述训练集对所述神经网络进行训练,输出除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数及每个阶段最后一个卷积层后的批归一化层的gamma参数;
合并模块,用于将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数升序排列;
输出模块,用于获取剪枝阈值,根据所述剪枝阈值和gamma参数确定剪枝后的gamma参数所在归一化层的通道数量,输出剪枝网络;
批归一化层的gamma参数包括第一部分和第二部分,第一部分为 除每个阶段的最后一个卷积层所属的批归一化层的 gamma参数及和第一部分相加的 归一化层的gamma参数为第二部分;所述将所述除每个阶段最后的一个卷积层外所有的卷积层后的批归一化层的gamma参数和每个阶段最后一个卷积层后的批归一化层的gamma参数进行合并,并将合并后的gamma参数以如下方式进行升序排列;
其中,为合并后的gamma参数升序排列,/>为神经网络中的第i阶段的剪枝权重,/>为每个阶段的第二部分的权值,/>第二部分的gamma参数;
所述训练数据为图像数据,所述对所述训练数据进行预处理,包括:
对图像数据设定标签;
从所述标签中选取预设百分比的图像数据作为训练集,其余的图像数据作为测试集;
对所述训练集和测试集均进行通道顺序改变处理。
7.根据权利要求6所述的基于稀疏约束再训练的神经网络剪枝装置,其特征在于,还包括:
判断模块,用于判断所述剪枝网络是否满足预设准确度;
如果所述剪枝网络的准确度满足预设条件,则输出剪枝网络;
否则,继续对神经网络进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210299661.3A CN114626527B (zh) | 2022-03-25 | 2022-03-25 | 基于稀疏约束再训练的神经网络剪枝方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210299661.3A CN114626527B (zh) | 2022-03-25 | 2022-03-25 | 基于稀疏约束再训练的神经网络剪枝方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114626527A CN114626527A (zh) | 2022-06-14 |
CN114626527B true CN114626527B (zh) | 2024-02-09 |
Family
ID=81904832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210299661.3A Active CN114626527B (zh) | 2022-03-25 | 2022-03-25 | 基于稀疏约束再训练的神经网络剪枝方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114626527B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214353A (zh) * | 2018-09-27 | 2019-01-15 | 云南大学 | 一种基于剪枝模型的人脸图像快速检测训练方法和装置 |
CN111079691A (zh) * | 2019-12-27 | 2020-04-28 | 中国科学院重庆绿色智能技术研究院 | 一种基于双流网络的剪枝方法 |
WO2020114118A1 (zh) * | 2018-12-07 | 2020-06-11 | 深圳光启空间技术有限公司 | 面部属性识别方法、装置、存储介质及处理器 |
CN111652366A (zh) * | 2020-05-09 | 2020-09-11 | 哈尔滨工业大学 | 一种基于通道剪枝和量化训练的联合神经网络模型压缩方法 |
CN112329922A (zh) * | 2020-11-24 | 2021-02-05 | 北京大学 | 一种基于质谱数据集的神经网络模型压缩方法及*** |
CN113516230A (zh) * | 2021-07-20 | 2021-10-19 | 华侨大学 | 基于平均秩重要性排序的自动化卷积神经网络剪枝方法 |
CN113705775A (zh) * | 2021-07-29 | 2021-11-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络的剪枝方法、装置、设备及存储介质 |
CN113919484A (zh) * | 2021-09-29 | 2022-01-11 | 澎峰(北京)科技有限公司 | 基于深度卷积神经网络模型的结构化剪枝方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11625607B2 (en) * | 2019-01-22 | 2023-04-11 | Black Sesame Technologies Inc. | Method of structured network pruning and sparsity speed-up |
US20210073642A1 (en) * | 2019-08-23 | 2021-03-11 | Benjamin Forrest Dribus | Sparse Local Connected Artificial Neural Network Architectures Involving Hybrid Local/Nonlocal Structure |
-
2022
- 2022-03-25 CN CN202210299661.3A patent/CN114626527B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109214353A (zh) * | 2018-09-27 | 2019-01-15 | 云南大学 | 一种基于剪枝模型的人脸图像快速检测训练方法和装置 |
WO2020114118A1 (zh) * | 2018-12-07 | 2020-06-11 | 深圳光启空间技术有限公司 | 面部属性识别方法、装置、存储介质及处理器 |
CN111079691A (zh) * | 2019-12-27 | 2020-04-28 | 中国科学院重庆绿色智能技术研究院 | 一种基于双流网络的剪枝方法 |
CN111652366A (zh) * | 2020-05-09 | 2020-09-11 | 哈尔滨工业大学 | 一种基于通道剪枝和量化训练的联合神经网络模型压缩方法 |
CN112329922A (zh) * | 2020-11-24 | 2021-02-05 | 北京大学 | 一种基于质谱数据集的神经网络模型压缩方法及*** |
CN113516230A (zh) * | 2021-07-20 | 2021-10-19 | 华侨大学 | 基于平均秩重要性排序的自动化卷积神经网络剪枝方法 |
CN113705775A (zh) * | 2021-07-29 | 2021-11-26 | 浪潮电子信息产业股份有限公司 | 一种神经网络的剪枝方法、装置、设备及存储介质 |
CN113919484A (zh) * | 2021-09-29 | 2022-01-11 | 澎峰(北京)科技有限公司 | 基于深度卷积神经网络模型的结构化剪枝方法和装置 |
Non-Patent Citations (4)
Title |
---|
HRCP : High-ratio channel pruning for real-time object detection on resource-limited platform;Yijie Chen et al.;Neurocomputing;全文 * |
基于MobileNetV3的结构性剪枝优化;宋非洋;吴黎明;郑耿哲;何欣颖;自动化与信息工程(06);全文 * |
基于滤波器注意力机制与特征缩放系数的动态网络剪枝;卢海伟等;小型微型计算机***;第40卷(第9期);全文 * |
深度学习中残差网络的随机训练策略;孙琪;陶蕴哲;杜强;计算数学(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114626527A (zh) | 2022-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109344921B (zh) | 一种基于深度神经网络模型的图像识别方法、装置及设备 | |
CN111898689B (zh) | 一种基于神经网络架构搜索的图像分类方法 | |
WO2018227800A1 (zh) | 一种神经网络训练方法及装置 | |
US20130266214A1 (en) | Training an image processing neural network without human selection of features | |
JP2023523029A (ja) | 画像認識モデル生成方法、装置、コンピュータ機器及び記憶媒体 | |
JP6950756B2 (ja) | ニューラルネットワークのランク最適化装置および最適化方法 | |
CN111737744B (zh) | 一种基于差分隐私的数据发布方法 | |
CN111079899A (zh) | 神经网络模型压缩方法、***、设备及介质 | |
CN111047078B (zh) | 交通特征预测方法、***及存储介质 | |
US20230131518A1 (en) | Model Generation Method and Apparatus, Object Detection Method and Apparatus, Device, and Storage Medium | |
CN112101487B (zh) | 一种细粒度识别模型的压缩方法和设备 | |
CN112052951A (zh) | 一种剪枝神经网络方法、***、设备及可读存储介质 | |
CN112101547B (zh) | 一种对网络模型的剪枝方法、装置、电子设备及存储介质 | |
CN109543693A (zh) | 基于正则化标签传播的弱标注数据降噪方法 | |
CN106204597A (zh) | 一种基于自步式弱监督学习的视频物体分割方法 | |
CN113139570A (zh) | 一种基于最优混合估值的大坝安全监测数据补全方法 | |
CN115659807A (zh) | 一种基于贝叶斯优化模型融合算法对人才表现预测的方法 | |
CN116453096A (zh) | 图像异物检测方法、装置、电子设备和存储介质 | |
CN110782181A (zh) | 一种低压台区线损率的计算方法及可读存储介质 | |
CN114444668A (zh) | 网络量化方法及***及装置及介质及图像处理方法 | |
CN113656707A (zh) | 一种理财产品推荐方法、***、存储介质及设备 | |
CN114626527B (zh) | 基于稀疏约束再训练的神经网络剪枝方法及装置 | |
US20220138554A1 (en) | Systems and methods utilizing machine learning techniques for training neural networks to generate distributions | |
CN116992941A (zh) | 基于特征相似与特征补偿的卷积神经网络剪枝方法及装置 | |
CN115170902B (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 | ||
GR01 | Patent grant |