CN113011588B - 一种卷积神经网络的剪枝方法、装置、设备和介质 - Google Patents
一种卷积神经网络的剪枝方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN113011588B CN113011588B CN202110428305.2A CN202110428305A CN113011588B CN 113011588 B CN113011588 B CN 113011588B CN 202110428305 A CN202110428305 A CN 202110428305A CN 113011588 B CN113011588 B CN 113011588B
- Authority
- CN
- China
- Prior art keywords
- pruning
- current
- model
- 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
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/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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种卷积神经网络的剪枝方法、装置、设备和介质,方法包括:获取图像的数据集并分为训练集与验证集;将待剪枝的卷积神经网络模型进行初始化后,对训练集中的图像进行多轮预训练,确定网络的敏感层;通过强化学习进行多轮自动化剪枝操作,得到每轮剪枝操作的模型精确度,从而获得模型精度最高的模型剪枝策略;其间,根据强化学习的确定性策略,对网络的敏感层和非敏感层实行不同的压缩策略,来对各网络层的滤波器数量进行剪枝;执行微调操作,得到最终的卷积神经网络模型。本发明从模型剪枝的最开始就介入强化学习,根据环境优化模型的剪枝策略,且剪枝的对象是完整滤波器,不会造成模型的不规则,大大提高了泛化性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种卷积神经网络的剪枝方法、装置、设备和介质。
背景技术
近年来,一方面深度更深的神经网络的研究所获得的模型效果越来越好,另一方面,随着无人驾驶与智能移动设备等相关领域的不断发展与创新,对适合应用于计算能力较弱的边缘设备上的深度神经网络模型的要求也在逐渐提高。而由于深度神经网络的特性,将其部署在移动设备上时,其所包含的参数量以及浮点计算量都是极其庞大的。例如,使用107层深度的YOLO v3网络检测416×416分辨率的图像时将产生240MB的参数和进行多达650亿次的乘法累加计算。在45nm CMOS工艺下,该目标检测方法仅仅访问DRAM即耗能41.6W。此外,在GPU上运行该模型进行实时目标检测成本高昂。例如,在NVIDIA Tesla T4上运行YOLO v3每秒可实时检测40帧图像,但该模块市场售价近三万元,远超出普遍经济承受能力。现有的神经网络模型很难做到在低成本设备上对模型精确性与计算速度的兼顾。
随着移动边缘设备的发展,其对精度的高依赖正逐步转化为在保持精度不降低或者仅略微降低的情况下尽可能的保证低的存储空间占用以及次数少的浮点计算量。基于这样一种趋势,必须对卷积神经网络模型进行剪枝,从而可以将原本应用于高性能计算机上的神经网络经压缩后,用于部署于移动边缘设备上。然而现有的神经网络的剪枝方法存在如下不足:
(1)现有的神经网络的剪枝方法大都需要人工专家不断调节参数来达到最佳的剪枝效果,从实际效果来说十分耗时,同时达到的效果容易出现局部最佳或者次优的情况。
(2)现有的模型剪枝方法着眼于模型中的权重修剪,此方式需要特定的硬件支持,泛化性较差。同时绝大多数剪枝策略都是基于规则的启发式方法,此类方法着重于滤波器重要性的排序与修剪,这样的方式很可能导致次优修剪。
20210105公开的,公开号为CN112183746A的中国发明公开了一种敏感度分析和强化学习的神经网络剪枝方法、系统及装置,包括:设定稀疏度阈值步骤,选择低敏感度的权重进行剪枝;获取裁剪办法和精度步骤,根据上述的敏感度权重确定需要进行随机剪枝的权重;对被选定的每一个权重进行随机裁剪,将多次随机裁剪的剪枝办法和精度放入缓冲区;训练强化学习步骤,利用缓冲区中的数据训练强化学习代理,训练后生成的裁剪办法和精度放入缓冲区;重复进行,直到网络精度达到预设值。本发明选择低敏感度的权重进行剪枝,设定各权重的稀疏度阈值保证被裁剪的权重采用当前稀疏度进程裁剪后,网络下降的精度保持在预设范围以内。在保证网络精度的情况下,最大化的提升了神经网络的压缩率。但是该发明是先针对神经网络模型的权重进行剪枝,然后微调,最后获得精度数据。如此多次重复以后将前面的剪枝的方法与对应的精度进行记录,以此训练强化学习,最后通过强化学习进行预测,实为一种服从正态分布中的随机策略,从而导致强化学习的实际应用并不充分。同时,该发明是针对权重而非完整滤波器进行的模型剪枝操作,势必会造成模型的不规则,在实际使用中泛化性差,还需要特定的硬件支持。
发明内容
本发明要解决的技术问题,在于提供一种卷积神经网络的剪枝方法、装置、设备和介质,从模型剪枝的最开始就介入强化学习,根据环境优化模型的剪枝策略,其为一种确定的策略,且剪枝的对象是完整滤波器,不会造成模型的不规则,大大提高了泛化性。
第一方面,本发明提供了一种卷积神经网络的剪枝方法,包括下述步骤:
S1、获取图像的数据集,并将数据集按比例分为训练集与验证集;
S2、将待剪枝的卷积神经网络模型进行初始化后,对训练集中的图像进行多轮预训练,从而获得各网络层的权重和,并根据权重和确定网络的敏感层;
S3、通过强化学习进行多轮自动化剪枝操作,并通过验证集验证得到每轮剪枝操作的模型精确度,从而获得模型精度最高的模型剪枝策略;其间,根据强化学习的确定性策略,对网络的敏感层和非敏感层实行不同的压缩策略,来对各网络层的滤波器数量进行剪枝;
S4、对完成多轮自动化剪枝操作后的卷积神经网络模型执行微调操作,得到最终的卷积神经网络模型。
第二方面,本发明提供了一种卷积神经网络的剪枝装置,包括:
数据模块,用于获取图像的数据集,并将数据集按比例分为训练集与验证集;
预训练模块,用于将待剪枝的卷积神经网络模型进行初始化后,对训练集中的图像进行多轮预训练,从而获得各网络层的权重和,并根据权重和确定网络的敏感层;
剪枝模块,用于通过强化学习进行多轮自动化剪枝操作,并通过验证集验证得到每轮剪枝操作的模型精确度,从而获得模型精度最高的模型剪枝策略;其间,根据强化学习的确定性策略,对网络的敏感层和非敏感层实行不同的压缩策略,来对各网络层的滤波器数量进行剪枝;
微调模块,用于对完成多轮自动化剪枝操作后的卷积神经网络模型执行微调操作,得到最终的卷积神经网络模型。
第三方面,本发明提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本发明提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的方法。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
1.可实现自动化剪枝操作:通过强化学习的方式实现自动化剪枝过程,无需人工专家不断调节参数来达到最佳的剪枝效果,且通过学习能够不断优化剪枝策略,最终获得最佳的剪枝策略,排除了局部最佳或者次优的情况的出现。
2.极大的保证剪枝以后神经网络模型的精度:通过聚焦于滤波器的冗余修剪与一定周期内的重要性排序剪枝的结合,同时对于深度神经网络模型中的敏感层滤波器实行较低压缩率剪枝甚至不剪枝处理,从而达到最大程度的精度保留;相较于现有的权重修剪,大大提高了泛化性,且无需特定的硬件支持。
3.降低设备的智能化成本:高性能的移动边缘设备的价格是十分昂贵的,在做到保证的精度降低在可接受范围内时,直接将剪枝操作以后的模型部署在计算与存储能力不那么高的边缘设备上,能极大降低相应的计算设备的成本。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明实施例一中方法中的流程图;
图2为本发明强化学习的原理框图;
图3为本发明实施例二中装置的结构示意图;
图4为本发明实施例三中电子设备的结构示意图;
图5为本发明实施例四中介质的结构示意图。
具体实施方式
本申请实施例通过提供一种卷积神经网络的剪枝方法、装置、设备和介质,从模型剪枝的最开始就介入强化学习,根据环境优化模型的剪枝策略,其为一种确定的策略,且剪枝的对象是完整滤波器,不会造成模型的不规则,大大提高了泛化性。
本申请实施例中的技术方案,总体思路如下:从模型剪枝的最开始就介入强化学习实现自动化剪枝过程,并根据环境不断优化剪枝策略,最终获得最佳的剪枝策略,排除了局部最佳或者次优的情况的出现。且剪枝的对象是完整滤波器,不会造成模型的不规则。还通过聚焦于滤波器的冗余修剪与一定周期内的重要性排序剪枝的结合,同时对于深度神经网络模型中的敏感层滤波器实行较低压缩率剪枝甚至不剪枝处理,从而达到最大程度的精度保留,大大提高了泛化性。
实施例一
如图1所示,本实施例提供一种卷积神经网络的剪枝方法,包括下述步骤:
S1、获取图像的数据集,并将数据集按比例分为训练集与验证集;
S2、将待剪枝的卷积神经网络模型进行初始化后,对训练集中的图像进行多轮预训练,从而获得各网络层的权重和,并根据权重和确定网络的敏感层;
S3、通过强化学习进行多轮自动化剪枝操作,并通过验证集验证得到每轮剪枝操作的模型精确度,从而获得模型精度最高的模型剪枝策略;其间,根据强化学习的确定性策略,对网络的敏感层和非敏感层实行不同的压缩策略,所述敏感层的压缩率低于非敏感层的压缩率,来对各网络层的滤波器数量进行剪枝;
S4、对完成多轮自动化剪枝操作后的卷积神经网络模型执行微调操作,得到最终的卷积神经网络模型。
其中,作为本实施例的一种更优或更为具体的实现方式,所述步骤S2具体是:
S21、将待剪枝的卷积神经网络模型进行初始化;
S22、获取各网络层预设的训练参数,提取待剪枝的卷积神经网络模型中的相应网络层的信息并建立层结构索引;
S23、对训练集中的图像进行多轮(如50轮)预训练过程,从而获得各网络层的权重和;每轮预训练中,将当前模型中各网络层的权重和进行排序,将权重和最大的前三名确定为敏感层,并存入当前模型的敏感层索引中。
所述步骤S3具体是:
S31、根据待剪枝的卷积神经网络模型的滤波器总数和目标剪枝率确定滤波器待剪总量M,进入多轮自动化剪枝操作;
S32、获取当前模型中的当前网络层并判断是否为敏感层(即判断当前网络层是否在敏感层索引中),若否,按照强化学习给出的动作进行压缩;若是,则根据强化学习的确定性策略,将强化学习的确定性输出的当前层压缩率设置为当前确定性输出的0.1倍,获取当前模型的当前网络层应当执行剪枝操作的滤波器数量Ni,同时计算获得剩余滤波器待剪量M’,M’=M-∑Ni;
S33、通过计算滤波器的L2范数计算滤波器的重要性程度,并将重要性程度低的Ni个滤波器的权重设置为0,从而完成当前模型中的当前网络层的Ni数量的滤波器剪枝;
S34、重复上述步骤S32和步骤S33,直到完成当前模型中的所有网络层的自动化剪枝操作,则当前轮自动化剪枝操作结束;
S34、发起新的一轮自动化剪枝操作,回到步骤S32,直到完成所有轮次的自动化剪枝操作;
其中,在每轮自动化剪枝操作结束后,通过验证集验证得到当前模型剪枝操作的模型精确度,并将当前模型剪枝策略与模型精确度对应保存到强化学习经验回放池中,在完成所有轮次的自动化剪枝操作后,通过比较即能获取精确度最高的剪枝策略。
所述步骤S4具体是:
通过对使用最佳精度的剪枝策略获得的模型使用原训练集执行150轮训练来执行微调操作获得最终剪枝完成的模型,其中损失函数具体为:
其中xi表示预测值,yi表示真实值,N为正整数。
再如图2所示,所述强化学习采用的是DDPG深度确定性策略强化学习法,该DDPG深度确定性策略强化学习法中的演员网络与评论家网络的训练根据完整一轮自动化剪枝所获得模型精确度与每一轮自动化剪枝中的剪枝状态作为输入来执行训练操作;
其中,在状态空间中,对于每一网络层t,通过公式(1)所示的10个属性来表示环境St的属性特征:
(t,n,c,h,w,stride,k,FLOPs[t],Reall,Rest,at-1) 公式(1);
式(1)中,t表示卷积神经网络模型层的索引,卷积核的尺寸为n×c×k×k,输入值为c×h×w,Stride表示卷积操作中的步长,FLOPs[t]表示第Lt层的浮点计算次数,Reall表示前面所有已剪枝的网络减少的FLOPs的总数,Rest表示余下各层中剩余的FLOPs总数;代理从滤波器剪枝的环境中获得属性特征所处的第t层的环境St,获得当前特征向量,然后输出环境St状态下的动作作为当前网络层的压缩率,指导当前网络层进行可替代滤波器剪枝;
在下一轮剪枝时,通过在DDPG经验回放池中采集m个样本利用下述公式(2)计算当前目标Q值yj:
式(2)中,所示的πθ′(φ(S′j)是通过演员目标网络获得,而Q′(φ(S′j),πθ′(φ(S′j)),w′)则是通过评论家目标网络获得;其中γ的值设置为1以避免短期奖励的优先级过高;在代理更新期间通过减去基线奖励b来减少梯度估计的方差,is_endj则表示对当前是否处于模型最后一层的判断;Rj表示的是强化学习函数当前所获得的奖励,其中梯度估计的值为此前奖励的指数移动平均值;
对于强化学习中的当前目标Q值yj,通过在DDPG经验回放池中采集m个样本{φ(Sj),Aj,Rj,φ(S′j),is_endj},其中j=1,2,3...m,DDPG的损失函数为下述公式(3)所示的均方误差函数:
式(3)中,φ(Sj)为当前状态Sj下获得的特征向量;其选择出来的动作A会增加一定的噪声,并且噪声会在每轮剪枝完以后呈指数衰减,公式中Aj表示为当前强化学习输出的动作,w则表示评论家当前网络的参数,Q(φ(Sj),Ajω)由评论家当前网络获得;最终和环境交互的动作A如公式(3)和公式(4)所示,其中公式(4)中,S表示强化学习所获得的当前状态,θ表示演员当前网络的参数,N表示是对所获得的动作添加的一定的噪声:
A=πθ(S)+N 公式(4);
强化学习中的奖励函数如公式(5)所示,其中log(FLOPs)以e为底与Error成反比,其中Error表示模型错误率的百分比:
RFLOPs=-Error·log(FLOPs) 公式(5);
所述步骤S33中的滤波器L2范数的计算采用下述公式(6)进行:
基于同一发明构思,本申请还提供了与实施例一中的方法对应的装置,详见实施例二。
实施例二
如图3所示,在本实施例中提供了一种卷积神经网络的剪枝装置,包括:
数据模块,用于获取图像的数据集,并将数据集按比例分为训练集与验证集;
预训练模块,用于将待剪枝的卷积神经网络模型进行初始化后,对训练集中的图像进行多轮预训练,从而获得各网络层的权重和,并根据权重和确定网络的敏感层;
剪枝模块,用于通过强化学习进行多轮自动化剪枝操作,并通过验证集验证得到每轮剪枝操作的模型精确度,从而获得模型精度最高的模型剪枝策略;其间,根据强化学习的确定性策略,对网络的敏感层和非敏感层实行不同的压缩策略,所述敏感层的压缩率低于非敏感层的压缩率,来对各网络层的滤波器数量进行剪枝;
微调模块,用于对完成多轮自动化剪枝操作后的卷积神经网络模型执行微调操作,得到最终的卷积神经网络模型。
其中,作为本实施例的一种更优或更为具体的实现方式,所述预训练模块具体用于执行下述过程:
S21、将待剪枝的卷积神经网络模型进行初始化;
S22、获取各网络层预设的训练参数,提取待剪枝的卷积神经网络模型中的相应网络层的信息并建立层结构索引;
S23、对训练集中的图像进行多轮预训练过程,从而获得各网络层的权重和;每轮预训练中,将当前模型中各网络层的权重和进行排序,将权重和最大的前三名确定为敏感层,并存入当前模型的敏感层索引中。
所述剪枝模块具体用于执行下述过程:
S31、根据待剪枝的卷积神经网络模型的滤波器总数和目标剪枝率确定滤波器待剪总量M,进入多轮自动化剪枝操作;
S32、获取当前模型中的当前网络层并判断是否为敏感层,若否,按照强化学习给出的动作进行压缩;若是,则根据强化学习的确定性策略,将强化学习的确定性输出的当前层压缩率设置为当前确定性输出的0.1倍,获取当前模型的当前网络层应当执行剪枝操作的滤波器数量Ni,同时计算获得剩余滤波器待剪量M’,M’=M-∑Ni;
S33、通过计算滤波器的L2范数计算滤波器的重要性程度,并将重要性程度低的Ni个滤波器的权重设置为0,从而完成当前模型中的当前网络层的Ni数量的滤波器剪枝;
S34、重复上述步骤S32和步骤S33,直到完成当前模型中的所有网络层的自动化剪枝操作,则当前轮自动化剪枝操作结束;
S34、发起新的一轮自动化剪枝操作,回到步骤S32,直到完成所有轮次的自动化剪枝操作;
其中,在每轮自动化剪枝操作结束后,通过验证集验证得到当前模型剪枝操作的模型精确度,并将当前模型剪枝策略与模型精确度对应保存到强化学习经验回放池中,在完成所有轮次的自动化剪枝操作后,通过比较即能获取精确度最高的剪枝策略。
所术微调模块具体是通过对使用最佳精度的剪枝策略获得的模型使用原训练集执行150轮训练来执行微调操作获得最终剪枝完成的模型,其中损失函数具体为:
其中xi表示预测值,yi表示真实值,N为正整数。
再如图2所示,所述强化学习采用的是DDPG深度确定性策略强化学习法,该DDPG深度确定性策略强化学习法中的演员网络与评论家网络的训练根据完整一轮自动化剪枝所获得模型精确度与每一轮自动化剪枝中的剪枝状态作为输入来执行训练操作;
其中,在状态空间中,对于每一网络层t,通过公式(1)所示的10个属性来表示环境St的属性特征:
(t,n,c,h,w,stride,k,FLOPs[t],Reall,Rest,at-1) 公式(1);
式(1)中,t表示卷积神经网络模型层的索引,卷积核的尺寸为n×c×k×k,输入值为c×h×w,Stride表示卷积操作中的步长,FLOPs[t]表示第Lt层的浮点计算次数,Reall表示前面所有已剪枝的网络减少的FLOPs的总数,Rest表示余下各层中剩余的FLOPs总数;代理从滤波器剪枝的环境中获得属性特征所处的第t层的环境St,获得当前特征向量,然后输出环境St状态下的动作作为当前网络层的压缩率,指导当前网络层进行可替代滤波器剪枝;
在下一轮剪枝时,通过在DDPG经验回放池中采集m个样本利用下述公式(2)计算当前目标Q值yj:
式(2)中,所示的πθ′(φ(S′j)是通过演员目标网络获得,而Q′(φ(S′j),πθ′(φ(S′j)),w′)则是通过评论家目标网络获得;其中γ的值设置为1以避免短期奖励的优先级过高;在代理更新期间通过减去基线奖励b来减少梯度估计的方差,is_endj则表示对当前是否处于模型最后一层的判断;Rj表示的是强化学习函数当前所获得的奖励,其中梯度估计的值为此前奖励的指数移动平均值;
对于强化学习中的当前目标Q值yj,通过在DDPG经验回放池中采集m个样本{φ(Sj),Aj,Rj,φ(S′j),is_endj},其中j=1,2,3...m,DDPG的损失函数为下述公式(3)所示的均方误差函数:
式(3)中,φ(Sj)为当前状态Sj下获得的特征向量;其选择出来的动作A会增加一定的噪声,并且噪声会在每轮剪枝完以后呈指数衰减,公式中Aj表示为当前强化学习输出的动作,w则表示评论家当前网络的参数,Q(φ(Sj),Aj,ω)由评论家当前网络获得;最终和环境交互的动作A如公式(3)和公式(4)所示,其中公式(4)中,S表示强化学习所获得的当前状态,θ表示演员当前网络的参数,N表示是对所获得的动作添加的一定的噪声:
A=πθ(S)+N 公式(4);
强化学习中的奖励函数如公式(5)所示,其中log(FLOPs)以e为底与Error成反比,其中Error表示模型错误率的百分比:
RFLOPs=-Error·log(FLOPs) 公式(5);
所述步骤S33中的滤波器L2范数的计算采用下述公式(6)进行:
由于本发明实施例二所介绍的装置,为实施本发明实施例一的方法所采用的装置,故而基于本发明实施例一所介绍的方法,本领域所属人员能够了解该装置的具体结构及变形,故而在此不再赘述。凡是本发明实施例一的方法所采用的装置都属于本发明所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的电子设备实施例,详见实施例三。
实施例三
本实施例提供了一种电子设备,如图4所示,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。
由于本实施例所介绍的电子设备为实施本申请实施例一中方法所采用的设备,故而基于本申请实施例一中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本申请实施例中的方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中的方法所采用的设备,都属于本申请所欲保护的范围。
基于同一发明构思,本申请提供了实施例一对应的存储介质,详见实施例四。
实施例四
本实施例提供一种计算机可读存储介质,如图5所示,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例一中任一实施方式。
本申请实施例提供的方法、装置、系统、设备及介质,至少具有如下技术效果或优点:
1.可实现自动化剪枝操作:通过强化学习的方式实现自动化剪枝过程,无需人工专家不断调节参数来达到最佳的剪枝效果,且通过学习能够不断优化剪枝策略,最终获得最佳的剪枝策略,排除了局部最佳或者次优的情况的出现。
2.极大的保证剪枝以后神经网络模型的精度:通过聚焦于滤波器的冗余修剪与一定周期内的重要性排序剪枝的结合,同时对于深度神经网络模型中的敏感层滤波器实行较低压缩率剪枝甚至不剪枝处理,从而达到最大程度的精度保留;相较于现有的权重修剪,大大提高了泛化性,且无需特定的硬件支持。
3.降低设备的智能化成本:高性能的移动边缘设备的价格是十分昂贵的,在做到保证的精度降低在可接受范围内时,直接将剪枝操作以后的模型部署在计算与存储能力不那么高的边缘设备上,能极大降低相应的计算设备的成本。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置或系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (6)
1.一种卷积神经网络的剪枝方法,其特征在于:包括下述步骤:
S1、获取图像的数据集,并将数据集按比例分为训练集与验证集;
S2、将待剪枝的卷积神经网络模型进行初始化后,对训练集中的图像进行多轮预训练,从而获得各网络层的权重和,并根据权重和确定网络的敏感层;
S3、通过强化学习进行多轮自动化剪枝操作,并通过验证集验证得到每轮剪枝操作的模型精确度,从而获得模型精度最高的模型剪枝策略;其间,根据强化学习的确定性策略,对网络的敏感层和非敏感层实行不同的压缩策略,所述敏感层的压缩率低于非敏感层的压缩率,来对各网络层的滤波器数量进行剪枝;所述步骤S3具体是:
S31、根据待剪枝的卷积神经网络模型的滤波器总数和目标剪枝率确定滤波器待剪总量M,进入多轮自动化剪枝操作;
S32、获取当前模型中的当前网络层并判断是否为敏感层,若否,按照强化学习给出的动作进行压缩;若是,则根据强化学习的确定性策略,将强化学习的确定性输出的当前层压缩率设置为当前确定性输出的0.1倍,获取当前模型的当前网络层i应当执行剪枝操作的滤波器数量Ni,同时计算获得剩余滤波器待剪量M’,M’=M-∑Ni;
S33、通过计算滤波器的L2范数计算滤波器的重要性程度,并将重要性程度低的Ni个滤波器的权重设置为0,从而完成当前模型中的当前网络层的Ni数量的滤波器剪枝;
S34、重复上述步骤S32和步骤S33,直到完成当前模型中的所有网络层的自动化剪枝操作,则当前轮自动化剪枝操作结束;
S35、发起新的一轮自动化剪枝操作,回到步骤S32,直到完成所有轮次的自动化剪枝操作;
其中,在每轮自动化剪枝操作结束后,通过验证集验证得到当前模型剪枝操作的模型精确度,并将当前模型剪枝策略与模型精确度对应保存到强化学习经验回放池中,在完成所有轮次的自动化剪枝操作后,通过比较即能获取精确度最高的剪枝策略;
所述强化学习采用的是DDPG深度确定性策略强化学习法,该DDPG深度确定性策略强化学习法中的演员网络与评论家网络的训练根据完整一轮自动化剪枝所获得模型精确度与每一轮自动化剪枝中的剪枝状态作为输入来执行训练操作;
其中,在状态空间中,对于每一网络层t,通过公式(1)所示的10个属性来表示环境St的属性特征:
(t,n,c,h,w,stride,k,FLOPs[t],Reall,Rest,at-1) 公式(1);
式(1)中,t表示卷积神经网络模型层的索引,卷积核的尺寸为n×c×k×k,输入值为c×h×w,Stride表示卷积操作中的步长,FLOPs[t]表示第Lt层的浮点计算次数,Reall表示前面所有已剪枝的网络减少的FLOPs的总数,Rest表示余下各层中剩余的FLOPs总数;代理从滤波器剪枝的环境中获得属性特征所处的第t层的环境St,获得当前特征向量,然后输出环境St状态下的动作作为当前网络层的压缩率at-1,指导当前网络层进行可替代滤波器剪枝;
在下一轮剪枝时,通过在DDPG经验回放池中采集m个样本利用下述公式(2)计算当前目标Q值yj:
式(2)中,所示的πθ′(φ(S′j))是通过演员目标网络获得,而Q′(φ(S′j),πθ′(φ(S′j)),w′)则是通过评论家目标网络获得;其中γ的值设置为1以避免短期奖励的优先级过高;在代理更新期间通过减去基线奖励b来减少梯度估计的方差,is_endj则表示对当前是否处于模型最后一层的判断;Rj表示的是强化学习函数当前所获得的奖励,其中梯度估计的值为此前奖励的指数移动平均值;
对于强化学习中的当前目标Q值yj,通过在DDPG经验回放池中采集m个样本{φ(Sj),Aj,Rj,φ(S′j),is_endj},其中j=1,2,3…m,DDPG的损失函数为下述公式(3)所示的均方误差函数:
式(3)中,φ(Sj)为当前状态Sj下获得的特征向量;其选择出来的动作A会增加一定的噪声,并且噪声会在每轮剪枝完以后呈指数衰减,公式中Aj表示为当前强化学习输出的动作,w则表示评论家当前网络的参数,Q(φ(Sj),Aj,ω)由评论家当前网络获得;最终和环境交互的动作A如公式(3)和公式(4)所示,其中公式(4)中,S表示强化学习所获得的当前状态,e表示演员当前网络的参数,N表示是对所获得的动作添加的一定的噪声:
A=πθ(S)+N 公式(4);
强化学习中的奖励函数如公式(5)所示,其中log(FLOPs)以e为底与Error成反比,其中Error表示模型错误率的百分比:
RFLOPs=-Error·log(FLOPs) 公式(5);
所述步骤S33中的滤波器L2范数的计算采用下述公式(6)进行:
S4、对完成多轮自动化剪枝操作后的卷积神经网络模型执行微调操作,得到最终的卷积神经网络模型。
2.根据权利要求1所述的一种卷积神经网络的剪枝方法,其特征在于:所述步骤S2具体是:
S21、将待剪枝的卷积神经网络模型进行初始化;
S22、获取各网络层预设的训练参数,提取待剪枝的卷积神经网络模型中的相应网络层的信息并建立层结构索引;
S23、对训练集中的图像进行多轮预训练过程,从而获得各网络层的权重和;每轮预训练中,将当前模型中各网络层的权重和进行排序,将权重和最大的前三名确定为敏感层,并存入当前模型的敏感层索引中。
3.一种卷积神经网络的剪枝装置,其特征在于:包括:
数据模块,用于获取图像的数据集,并将数据集按比例分为训练集与验证集;
预训练模块,用于将待剪枝的卷积神经网络模型进行初始化后,对训练集中的图像进行多轮预训练,从而获得各网络层的权重和,并根据权重和确定网络的敏感层;
剪枝模块,用于通过强化学习进行多轮自动化剪枝操作,并通过验证集验证得到每轮剪枝操作的模型精确度,从而获得模型精度最高的模型剪枝策略;其间,根据强化学习的确定性策略,对网络的敏感层和非敏感层实行不同的压缩策略,所述敏感层的压缩率低于非敏感层的压缩率,来对各网络层的滤波器数量进行剪枝;
微调模块,用于对完成多轮自动化剪枝操作后的卷积神经网络模型执行微调操作,得到最终的卷积神经网络模型;
其中,所述剪枝模块具体用于执行下述过程:
S31、根据待剪枝的卷积神经网络模型的滤波器总数和目标剪枝率确定滤波器待剪总量M,进入多轮自动化剪枝操作;
S32、获取当前模型中的当前网络层并判断是否为敏感层,若否,按照强化学习给出的动作进行压缩;若是,则根据强化学习的确定性策略,将强化学习的确定性输出的当前层压缩率设置为当前确定性输出的0.1倍,获取当前模型的当前网络层i应当执行剪枝操作的滤波器数量Ni,同时计算获得剩余滤波器待剪量M’,M’=M-∑Ni;
S33、通过计算滤波器的L2范数计算滤波器的重要性程度,并将重要性程度低的Ni个滤波器的权重设置为0,从而完成当前模型中的当前网络层的Ni数量的滤波器剪枝;
S34、重复上述步骤S32和步骤S33,直到完成当前模型中的所有网络层的自动化剪枝操作,则当前轮自动化剪枝操作结束;
S35、发起新的一轮自动化剪枝操作,回到步骤S32,直到完成所有轮次的自动化剪枝操作;
其中,在每轮自动化剪枝操作结束后,通过验证集验证得到当前模型剪枝操作的模型精确度,并将当前模型剪枝策略与模型精确度对应保存到强化学习经验回放池中,在完成所有轮次的自动化剪枝操作后,通过比较即能获取精确度最高的剪枝策略;
所述强化学习采用的是DDPG深度确定性策略强化学习法,该DDPG深度确定性策略强化学习法中的演员网络与评论家网络的训练根据完整一轮自动化剪枝所获得模型精确度与每一轮自动化剪枝中的剪枝状态作为输入来执行训练操作;
其中,在状态空间中,对于每一网络层t,通过公式(1)所示的10个属性来表示环境St的属性特征:
(t,n,c,h,w,stride,k,FLOPs[t],Reall,Rest,at-1) 公式(1);
式(1)中,t表示卷积神经网络模型层的索引,卷积核的尺寸为n×c×k×k,输入值为c×h×w,Stride表示卷积操作中的步长,FLOPs[t]表示第Lt层的浮点计算次数,Reall表示前面所有已剪枝的网络减少的FLOPs的总数,Rest表示余下各层中剩余的FLOPs总数;代理从滤波器剪枝的环境中获得属性特征所处的第t层的环境St,获得当前特征向量,然后输出环境St状态下的动作作为当前网络层的压缩率at-1,指导当前网络层进行可替代滤波器剪枝;
在下一轮剪枝时,通过在DDPG经验回放池中采集m个样本利用下述公式(2)计算当前目标Q值yj:
式(2)中,所示的πθ′(φ(S′j))是通过演员目标网络获得,而Q′(φ(S′j),πθ′(φ(S′j)),w′)则是通过评论家目标网络获得;其中γ的值设置为1以避免短期奖励的优先级过高;在代理更新期间通过减去基线奖励b来减少梯度估计的方差,is_endj则表示对当前是否处于模型最后一层的判断;Rj表示的是强化学习函数当前所获得的奖励,其中梯度估计的值为此前奖励的指数移动平均值;
对于强化学习中的当前目标Q值yi,通过在DDPG经验回放池中采集m个样本{φ(Sj),Aj,Rj,φ(Sj′),is_endj},其中j=1,2,3…m,DDPG的损失函数为下述公式(3)所示的均方误差函数:
式(3)中,φ(Sj)为当前状态Sj下获得的特征向量;其选择出来的动作A会增加一定的噪声,并且噪声会在每轮剪枝完以后呈指数衰减,公式中Aj表示为当前强化学习输出的动作,w则表示评论家当前网络的参数,Q(φ(Sj),Aj,ω)由评论家当前网络获得;最终和环境交互的动作A如公式(3)和公式(4)所示,其中公式(4)中,S表示强化学习所获得的当前状态,e表示演员当前网络的参数,N表示是对所获得的动作添加的一定的噪声:
A=πθ(S)+N 公式(4);
强化学习中的奖励函数如公式(5)所示,其中log(FLOPs)以e为底与Error成反比,其中Error表示模型错误率的百分比:
RFLOPs=-Error·log(FLOPs) 公式(5);
所述步骤S33中的滤波器L2范数的计算采用下述公式(6)进行:
4.根据权利要求3所述的一种卷积神经网络的剪枝装置,其特征在于:所述预训练模块具体用于执行下述过程:
S21、将待剪枝的卷积神经网络模型进行初始化;
S22、获取各网络层预设的训练参数,提取待剪枝的卷积神经网络模型中的相应网络层的信息并建立层结构索引;
S23、对训练集中的图像进行多轮预训练过程,从而获得各网络层的权重和;每轮预训练中,将当前模型中各网络层的权重和进行排序,将权重和最大的前三名确定为敏感层,并存入当前模型的敏感层索引中。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1或2所述的方法。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1或2所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110428305.2A CN113011588B (zh) | 2021-04-21 | 2021-04-21 | 一种卷积神经网络的剪枝方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110428305.2A CN113011588B (zh) | 2021-04-21 | 2021-04-21 | 一种卷积神经网络的剪枝方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113011588A CN113011588A (zh) | 2021-06-22 |
CN113011588B true CN113011588B (zh) | 2023-05-30 |
Family
ID=76388964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110428305.2A Active CN113011588B (zh) | 2021-04-21 | 2021-04-21 | 一种卷积神经网络的剪枝方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113011588B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113657592B (zh) * | 2021-07-29 | 2024-03-05 | 中国科学院软件研究所 | 一种软件定义卫星自适应剪枝模型压缩方法 |
CN113627389B (zh) * | 2021-08-30 | 2024-08-23 | 京东方科技集团股份有限公司 | 一种目标检测的优化方法及设备 |
CN113743591B (zh) * | 2021-09-14 | 2023-12-26 | 北京邮电大学 | 一种自动化剪枝卷积神经网络的方法及其系统 |
CN114154626B (zh) * | 2021-12-14 | 2022-08-16 | 中国人民解放军国防科技大学 | 一种用于图像分类任务的滤波器剪枝方法 |
CN116129197A (zh) * | 2023-04-04 | 2023-05-16 | 中国科学院水生生物研究所 | 一种基于强化学习的鱼类分类方法、系统、设备及介质 |
CN116540602B (zh) * | 2023-04-28 | 2024-02-23 | 金陵科技学院 | 一种基于路段安全级别dqn的车辆无人驾驶方法 |
CN117058525B (zh) * | 2023-10-08 | 2024-02-06 | 之江实验室 | 一种模型的训练方法、装置、存储介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110619385A (zh) * | 2019-08-31 | 2019-12-27 | 电子科技大学 | 基于多级剪枝的结构化网络模型压缩加速方法 |
CN111199282A (zh) * | 2019-12-31 | 2020-05-26 | 的卢技术有限公司 | 一种卷积神经网络模型的剪枝方法及装置 |
CN111340227A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 通过强化学习模型对业务预测模型进行压缩的方法和装置 |
CN112183746A (zh) * | 2020-09-30 | 2021-01-05 | 深兰人工智能(深圳)有限公司 | 敏感度分析和强化学习的神经网络剪枝方法、系统及装置 |
CN112287950A (zh) * | 2020-11-16 | 2021-01-29 | 北京沃东天骏信息技术有限公司 | 特征提取模块压缩方法、图像处理方法、装置、介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11907843B2 (en) * | 2016-06-30 | 2024-02-20 | Intel Corporation | Importance-aware model pruning and re-training for efficient convolutional neural networks |
CN108038546B (zh) * | 2017-12-29 | 2021-02-09 | 百度在线网络技术(北京)有限公司 | 用于压缩神经网络的方法和装置 |
-
2021
- 2021-04-21 CN CN202110428305.2A patent/CN113011588B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110619385A (zh) * | 2019-08-31 | 2019-12-27 | 电子科技大学 | 基于多级剪枝的结构化网络模型压缩加速方法 |
CN111199282A (zh) * | 2019-12-31 | 2020-05-26 | 的卢技术有限公司 | 一种卷积神经网络模型的剪枝方法及装置 |
CN111340227A (zh) * | 2020-05-15 | 2020-06-26 | 支付宝(杭州)信息技术有限公司 | 通过强化学习模型对业务预测模型进行压缩的方法和装置 |
CN112183746A (zh) * | 2020-09-30 | 2021-01-05 | 深兰人工智能(深圳)有限公司 | 敏感度分析和强化学习的神经网络剪枝方法、系统及装置 |
CN112287950A (zh) * | 2020-11-16 | 2021-01-29 | 北京沃东天骏信息技术有限公司 | 特征提取模块压缩方法、图像处理方法、装置、介质 |
Non-Patent Citations (4)
Title |
---|
基于MobileNet与YOLOv3的轻量化卷积神经网络设计;邵伟平;王兴;曹昭睿;白帆;;计算机应用(S1);全文 * |
基于机器学习的高校图书馆个性化智能推荐服务方案;柳益君;罗烨;蔡秋茹;吴智勤;何胜;;图书馆研究与工作(03);全文 * |
基于深层卷积神经网络的剪枝优化;马治楠;韩云杰;彭琳钰;周进凡;林付春;刘宇红;;电子技术应用(12);全文 * |
基于深度神经网络的多模态特征自适应聚类方法;敬明旻;;计算机应用与软件(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113011588A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113011588B (zh) | 一种卷积神经网络的剪枝方法、装置、设备和介质 | |
CN113516230B (zh) | 基于平均秩重要性排序的自动化卷积神经网络剪枝方法 | |
CN117892774A (zh) | 用于卷积神经网络的神经架构搜索 | |
CN110663049B (zh) | 神经网络优化器搜索 | |
CN110799994A (zh) | 神经网络的自适应位宽缩减 | |
US12051233B2 (en) | Method for filtering image feature points and terminal | |
US12050976B2 (en) | Convolution operations utilizing nonzero padding data copied from input channel data | |
CN115600650A (zh) | 基于强化学习的自动化卷积神经网络量化剪枝方法、设备和存储介质 | |
CN112101547B (zh) | 一种对网络模型的剪枝方法、装置、电子设备及存储介质 | |
CN113177630B (zh) | 一种针对深度学习模型的数据记忆消除方法和装置 | |
Pietron et al. | Retrain or not retrain?-efficient pruning methods of deep cnn networks | |
CN110490304A (zh) | 一种数据处理方法及设备 | |
CN114742221A (zh) | 深度神经网络模型剪枝方法、系统、设备及介质 | |
CN116188878A (zh) | 基于神经网络结构微调的图像分类方法、装置和存储介质 | |
CN111241258A (zh) | 数据清洗方法、装置、计算机设备及可读存储介质 | |
CN112287950A (zh) | 特征提取模块压缩方法、图像处理方法、装置、介质 | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN113361702A (zh) | 卷积神经网络剪枝、推理方法、设备以及计算机可读介质 | |
CN110659962A (zh) | 一种商品信息输出方法及相关装置 | |
CN112699990B (zh) | 神经网络模型训练方法、装置及电子设备 | |
Liu et al. | Automatic compression ratio allocation for pruning convolutional neural networks | |
CN113298248B (zh) | 一种针对神经网络模型的处理方法、装置以及电子设备 | |
CN115995289B (zh) | 基于神经网络模型对医学图像的勾画方法和装置 | |
CN116167430B (zh) | 基于均值感知稀疏的目标检测模型全局剪枝方法及设备 | |
CN115689648B (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 |