CN116128044A - 一种模型剪枝方法、图像处理方法及相关装置 - Google Patents
一种模型剪枝方法、图像处理方法及相关装置 Download PDFInfo
- Publication number
- CN116128044A CN116128044A CN202211600306.1A CN202211600306A CN116128044A CN 116128044 A CN116128044 A CN 116128044A CN 202211600306 A CN202211600306 A CN 202211600306A CN 116128044 A CN116128044 A CN 116128044A
- Authority
- CN
- China
- Prior art keywords
- pruning
- model
- target
- pruned
- configuration
- 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
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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种模型剪枝方法、图像处理方法及相关装置,包括:获取待剪枝模型以及其对应的剪枝目标,其中,所述待剪枝模型基于图像数据训练得到;根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置;根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型;其中,所述根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置,包括:根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置;基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。本发明从全局最优出发,具有更好的剪枝效果。
Description
技术领域
本发明涉及模型压缩技术领域,尤其涉及一种模型剪枝方法、图像处理方法及相关装置。
背景技术
随着人工智能技术的发展,神经网络模型的应用也越来越广泛。考虑到网络模型的参数多、运算量大,为了提高模型的运算速度,需要对模型进行压缩。通过模型压缩,以达到减小模型尺寸,降低资源消耗并提升响应时间的目的。
其中,模型剪枝是当前一种常见的模型压缩方法,该方法通过在训练完模型后,去掉网络模型中权重较小的参数,以实现对神经网络模型的压缩。当前模型剪枝分为迭代式剪枝和一次剪枝(one-shot剪枝),两者在分析剪枝配置时通常采用贪心法确定剪枝配置,该方法无法达到全局最优,且对复杂的神经网络模型来说剪枝效果不够好。因此,如何从全局最优角度确定剪枝配置是亟需解决的技术问题。
发明内容
本发明提供一种模型剪枝方法、图像处理方法及相关装置,用以解决上述问题。
本发明提供一种模型剪枝方法,包括:
获取待剪枝模型以及其对应的剪枝目标,其中,所述待剪枝模型基于图像数据训练得到;
根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置;
根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型;
其中,所述根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置,包括:
根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置;
基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。
根据本发明提供的一种模型剪枝方法,所述剪枝目标为通道数剪枝比率;
所述根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置,包括:
获取所述待剪枝模型中每一网络层中各个通道的范数;
根据所述每一网络层中各个通道的范数大小对每一网络层的通道进行排序,以获得每一网络层的通道序列;
根据初始目标剪枝通道数从所述每一网络层的通道序列中确定初始待剪枝通道;其中,所述初始目标剪枝通道数根据所述通道数剪枝比率以及每一网络层的通道总数量计算得到;
根据所述初始待剪枝通道以及其对应的通道信息生成初始剪枝配置。
根据本发明提供的一种模型剪枝方法,所述剪枝目标为通道数剪枝比率;
所述基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置,包括:
S1,获取所述待剪枝模型中每一网络层中各个通道的范数;
S2,按照所述各个通道的范数大小对所有通道进行排序,以获得与所述待剪枝模型对应的通道序列;
S3,根据迭代目标剪枝通道数从与所述待剪枝模型对应的通道序列中确定迭代待剪枝通道;其中,所述迭代目标剪枝通道数根据所述通道数剪枝比率以及所述待剪枝模型的通道总数量计算得到;
S4,根据所述迭代待剪枝通道及其对应的通道信息对所述初始剪枝配置进行更新,以获得新的初始剪枝配置;
S5,利用训练图像及其对应的图像标签对所述待剪枝模型中每一网路层各个通道的网络参数进行更新,以获得更新后的网络参数;
S6,基于所述更新后的网络参数,重复执行所述步骤S1-S6,直到达到预设的迭代次数,获得最终的初始剪枝配置作为目标剪枝配置。
根据本发明提供的一种模型剪枝方法,所述根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型,包括:
根据所述目标剪枝配置对所述待剪枝模型进行一次剪枝,获得剪枝后模型;
根据预设的微调训练次数对所述剪枝后模型进行微调训练,获得目标模型。
根据本发明提供的一种模型剪枝方法,所述预设的迭代次数或所述预设的微调训练次数均根据待剪枝模型的剪枝训练参数确定;
其中,所述剪枝训练参数包括预剪枝迭代次数占比以及剪枝训练的总迭代次数;
所述预设的迭代次数为预剪枝迭代次数占比与剪枝训练的总迭代次数的乘积;
所述预设的微调训练次数为所述剪枝训练的总迭代次数与所述预设的迭代次数之间的差值。
本发明还提供一种图像处理方法,包括:
获取待处理图像;
将所述待处理图像输入到训练好的图像处理模型中,通过所述训练好的图像处理模型对所述待处理图像进行处理,得到处理结果;其中,所述训练好的图像处理模型为通过上述任一所述的模型剪枝方法得到。
本发明还提供一种模型剪枝装置,包括:
待剪枝模型与剪枝目标获取模块,用于获取待剪枝模型以及其对应的剪枝目标,其中,所述待剪枝模型基于图像数据训练得到;
预剪枝模块,用于根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置;
一次剪枝模块,用于根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型;
其中,所述预剪枝模块具体用于:
根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置;
基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。
本发明还提供一种图像处理装置,包括:
图像获取模块,用于获取待处理图像;
图像处理模块,用于将所述待处理图像输入到训练好的图像处理模型中,通过所述训练好的图像处理模型对所述待处理图像进行处理,得到处理结果;其中,所述训练好的图像处理模型为通过如上述的模型剪枝装置得到。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如上述任一种模型剪枝方法或图像处理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如上述任一种模型剪枝方法或图像处理方法。
本发明提供的模型剪枝方法、图像处理方法及相关装置,其中,模型剪枝方法通过先对待剪枝模型进行预剪枝获得目标剪枝配置,再根据目标剪枝配置对待剪枝模型进行一次剪枝,从而获得目标模型。其中,预剪枝过程是先根据剪枝目标对待剪枝模型进行均匀剪枝获得初始剪枝配置,再进行迭代剪枝获得目标剪枝配置,从全局最优的角度设计预剪枝过程,因而获得全局最优的剪枝配置,使得复杂的待剪枝模型具有较好的剪枝效果。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的模型剪枝方法的流程示意图之一;
图2是本发明实施例提供的模型剪枝方法的流程示意图之二;
图3是本发明实施例提供的图像处理方法的流程示意图;
图4为本发明实施例提供的模型剪枝装置结构示意图;
图5是本发明实施例提供的图像处理装置的结构示意图;
图6为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先对本发明实施例中提到的网络层中通道的概念进行解释:针对任一层网络层,假如该网络层为卷积层,且该卷积层对应的参数为32*16*3*3,则其中32为该卷积层中卷积核的数量,也即卷积层的通道数量,16为卷积核的通道数,3*3为卷积核的尺寸,对该层网络层进行通道剪枝处理,即为减少卷积核的数量,使得得到的输出特征图的通道数减少,进而降低卷积处理过程中的计算量、以及模型的体积。例如在对该层网络层进行通道剪枝处理时,减去该层网络层中的5个卷积核,则卷积核就会变成:27*16*3*3。
下面结合附图对本发明提供的模型剪枝方法、图像处理方法及相关装置进行具体说明。
图1是本发明实施例提供的模型剪枝方法的流程示意图之一;图2是本发明实施例提供的模型剪枝方法的流程示意图之二;如图1以及图2所示,该模型剪枝方法,包括:
S101,获取待剪枝模型以及其对应的剪枝目标。
其中,所述待剪枝模型基于图像数据训练得到,且为预训练模型,该预训练模型可以具体为卷积神经网络,且基于训练图像及其对应的图像标签训练得到,用于进行图像处理。剪枝目标可以是预训练模型所要达到的体积大小,可以是整个预训练模型的剪枝率,或者具体到剪枝通道数。
S102,根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置。
其中,所述根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置,包括:
根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置。比如,设定每一网络层的通道剪枝率为50%,则每一网络层中的一半通道被设定为初始待剪枝通道,该过程即为均匀剪枝。随后,根据所有网络层的初始待剪枝通道及其对应的通道信息(即通道标识)生成初始剪枝配置。
需要说明的是,在确定初始待剪枝通道之后,并不直接对待剪枝模型进行剪枝,而是通过后需的迭代剪枝对初始待剪枝通道进行更新,以获得最终的剪枝配置,根据该剪枝配置再对待剪枝模型进行剪枝。
基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。
在获得初始剪枝配置之后,利用训练图像及其对应的图像标签对待剪枝模型进行网络参数更新,基于更新后的网络参数以及剪枝目标重新确定待剪枝模型中的初始待剪枝通道,在网络参数地不断迭代更新后最终获得迭代待剪枝通道,根据迭代待剪枝通道以及其对应的通道信息生成目标剪枝配置。
现有剪枝方法中仅基于载入的预训练模型权重采用贪心法去分析,只能达到局部最优。这样分析出来的剪枝配置仅适合预训练模型,并不代表最终经过剪枝和微调训练后模型的效果就好。
而本发明提出的预剪枝方法中,每次剪枝之前都会重新对待剪枝模型进行整体分析(即根据各层网络层中每一通道的权重进行分析),因此,剪枝配置是在训练中不断动态调整的,所以最终得到的剪枝配置更优。在动态调整过程中,有些初始时被确定为待剪枝通道的,在经过迭代式的训练和分析后,可能不是最终的待剪枝通道,其角色是可变的,相较于现有的剪枝方法,本发明从全局最优角度设计剪枝方法,具有更好的剪枝效果。
S103,根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型(即最终剪枝模型)。
在本步骤中,通过上述预剪枝过程确定了达到全局最优的剪枝配置(即目标剪枝配置),利用该目标剪枝配置对待剪枝模型中各个网络层的通道进行一次剪枝(即one-shot剪枝),剪枝后的模型经过微调从而获得目标模型。
本发明实施例提供的模型剪枝方法,通过先对待剪枝模型进行预剪枝获得目标剪枝配置,再根据目标剪枝配置对待剪枝模型进行一次剪枝,从而获得目标模型。其中,预剪枝过程是先根据剪枝目标对待剪枝模型进行均匀剪枝获得初始剪枝配置,再进行迭代剪枝获得目标剪枝配置,从全局最优的角度设计预剪枝过程,因而获得全局最优的剪枝配置,使得复杂的待剪枝模型具有较好的剪枝效果。
在本发明的一些实施例中,所述剪枝目标为通道数剪枝比率ratio_target。
所述根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置,包括:
获取所述待剪枝模型中每一网络层中各个通道的范数。
根据所述每一网络层中各个通道的范数大小对每一网络层的通道进行排序,以获得每一网络层的通道序列。
根据初始目标剪枝通道数从所述每一网络层的通道序列中确定初始待剪枝通道;其中,所述初始目标剪枝通道数根据所述通道数剪枝比率以及每一网络层的通道总数量计算得到。
根据所述初始待剪枝通道以及其对应的通道信息生成初始剪枝配置。
具体地,依次计算每一网络层中各通道中所有权重的范数值之和,获得每个通道对应的范数。假设当前网络层的通道总数量为n_i,则根据n_i个通道对应范数按照范数数值由小到大的顺序对n_i个通道进行排序,从而获得当前网络层的通道序列。对待剪枝模型中每一网络层的通道按照上述方式进行排序后获得每一网络层对应的通道序列。
还是以上述n_i个通道为例,在获得当前网络层的通道序列之后,将排序靠前的a(即初始目标剪枝通道数)个通道设定为初始待剪枝通道,即,该通道剪枝后对模型的性能影响很小。其中,初始目标剪枝通道数a=n_i*ratio_target。
在对所有网络层进行均匀剪枝后获得所有的初始待剪枝通道T_p,并将待剪枝模型中剩下的通道标记为T_r,待剪枝模型中的所有通道标记为T_all。
在本实施例中,权重的范数值通过对权重进行L1范数计算后获得,在本发明的其他方案中也可以通过L0范数、L2范数等其他方式计算得到。
本发明实施例提供的模型剪枝方法,通过对待剪枝模型进行均匀剪枝后获得初始剪枝配置,该初始剪枝配置是在剪枝目标的导向下获得,用于后续的迭代剪枝更新,有利于后续快速找到全局最优的剪枝配置。
在本发明的一些实施例中,所述剪枝目标为通道数剪枝比率ratio_target。
所述基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置,包括:
S1,获取所述待剪枝模型中每一网络层中各个通道的范数。
S2,按照所述各个通道的范数大小对所有通道进行排序,以获得与所述待剪枝模型对应的通道序列。
S3,根据迭代目标剪枝通道数从与所述待剪枝模型对应的通道序列中确定迭代待剪枝通道;其中,所述迭代目标剪枝通道数根据所述通道数剪枝比率以及所述待剪枝模型的通道总数量计算得到。
S4,根据所述迭代待剪枝通道及其对应的通道信息对所述初始剪枝配置进行更新,以获得新的初始剪枝配置。
S5,利用训练图像及其对应的图像标签对所述待剪枝模型中每一网路层各个通道的网络参数进行更新,以获得更新后的网络参数。
S6,基于所述更新后的网络参数,重复执行所述步骤S1-S6,直到达到预设的迭代次数,获得最终的初始剪枝配置作为目标剪枝配置。
本实施例的迭代剪枝过程中待剪枝通道确定与上述均匀剪枝过程中待剪枝通道的确定略有不同,均匀剪枝是每一网络层进行均匀剪枝,而迭代剪枝则是待剪枝模型按照比率进行整体剪枝。
具体地,也是先计算每一网络层中各通道中所有权重的范数值之和,获得每个通道对应的范数。然后,对待剪枝模型的所有通道进行排序,获得待剪枝模型的通道序列,根据迭代目标剪枝通道数从该通道序列中确定迭代待剪枝通道。
举例来说,假设待剪枝模型所有网络层总共有n个通道,则根据n个通道对应的范数并按照范数数值由小到大的顺序对n个通道进行排序,获得与待剪枝模型对应的通道序列,将该通道序列中靠前的b个通道作为迭代待剪枝通道T_iter,其中,b=n*ratio_target。
在获得迭代待剪枝通道之后,利用迭代待剪枝通道取代之前的初始待剪枝通道,获得新的初始剪枝配置,即T_p=T_iter,T_r=T_all-T_iter。比方说,以当前网络层的通道数为8为例,若在均匀剪枝过程,第1-4个通道被设定为初始待剪枝通道,则在后续的迭代剪枝过程,由于网络参数的不断变化,其对应的范数也有所变化,导致每个通道在通道序列中的排名会有所改变,迭代待剪枝通道会相应发生变化,会出现在第一轮迭代过程中第2-5个通道被设定为迭代待剪枝通道,在第二轮迭代过程中第1、2、4、7个通道被设定为迭代待剪枝通道。通过上述方式的初始剪枝配置更新快速获得全局最优的剪枝配置。
在获得新的初始剪枝配置之后对待剪枝模型进行网络参数更新,获得更新后的网络参数,基于更新后的网络参数重新计算每个通道的范数,再进行通道排序,获得待剪枝模型的新的通道序列,继续从新的通道序列中确定b个新的迭代待剪枝通道,随后再更新初始剪枝配置,在循环迭代达到预设的迭代次数之后,将最后一次更新得到的初始剪枝配置作为目标剪枝配置进行输出。
需要说明的是,上述提到的预设的迭代次数根据预剪枝迭代次数占比α以及剪枝训练的总迭代次数iters_all计算得到,即预设的迭代次数=iters_all*α。
在本发明的一些实施例中,所述根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型,包括:
根据所述目标剪枝配置对所述待剪枝模型进行一次剪枝,获得剪枝后模型。
根据预设的微调训练次数对所述剪枝后模型进行微调训练,获得目标模型。
具体地,在获得全局最优的剪枝配置之后,根据剪枝配置中的通道信息对待剪枝模型中各个网络层的通道进行一次剪枝(即one-shot剪枝),获得剪枝后模型,并对剪枝后模型进行微调训练(即fine-tune)。在微调训练达到预设的微调训练次数之后,最终得到目标模型。其中,预设的微调训练次数根据待剪枝模型的剪枝训练参数确定,具体预设的微调训练次数=iters_all*(1-α)=iters_all*α。
上述目标模型满足预设的剪枝目标,且根据全局最优剪枝配置剪枝得到,其可以用于计算量有限制的终端上进行图像处理。
图3是本发明实施例提供的图像处理方法的流程示意图;如图3所示,该图像处理方法,包括:
S301,获取待处理图像。
S302,将所述待处理图像输入到训练好的图像处理模型中,通过所述训练好的图像处理模型对所述待处理图像进行处理,得到处理结果。
其中,所述训练好的图像处理模型为通过如上述的模型剪枝方法得到。
在本实施例中,通过上述模型剪枝方法获得训练好的图像处理模型,并将该训练好的图像处理模型移植在算力有限的终端中,该终端在获取待处理图像之后,将待处理图像输入至训练好的图像处理模型,直接得到预测结果,降低资源消耗并提升响应时间。举例来说,图像处理模型为标志牌分类模型,其在云端或者其他计算资源丰富的设备上完成训练与剪枝之后,被移植至自动驾驶的车端。车端在获取车辆周围的图像之后,通过该标志牌分类模型进行分类预测,得到分类结果。又或者,图像处理模型为人脸属性识别模型,用于识别输入的人脸图像中人的性别、年龄、种族等,那么,该人脸属性识别模型在经过训练与剪枝之后被移植至计算资源有限的终端中,对终端所获取的人脸图像进行识别,获得人脸识别结果。
本发明实施例提供的图像处理方法,基于上述提到的剪枝方法获得图像处理模型,利用该图像处理模型在计算资源有限的终端中实现图像处理,达到了降低资源消耗并提升响应时间的目的。
下面对本发明提供的模型剪枝装置以及图像处理装置进行描述,下文描述的模型剪枝装置与上文描述的模型剪枝方法可相互对应参照,图像处理装置与图像处理方法相互对应参照。
图4为本发明实施例提供的模型剪枝装置结构示意图,如图4所示,该模型剪枝装置包括待剪枝模型与剪枝目标获取模块401、预剪枝模块402以及一次剪枝模块403。
待剪枝模型与剪枝目标获取模块401,用于获取待剪枝模型以及其对应的剪枝目标,其中,所述待剪枝模型基于图像数据训练得到。
其中,待剪枝模型为预训练模型,该预训练模型可以具体为卷积神经网络,且基于训练图像及其对应的图像标签训练得到,用于进行图像处理。剪枝目标可以是预训练模型所要达到的体积大小,可以是整个预训练模型的剪枝率,或者具体到剪枝通道数。
预剪枝模块402,用于根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置。
其中,所述预剪枝模块402具体用于:
根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置。比如,设定每一网络层的通道剪枝率为50%,则每一网络层中的一半通道被设定为初始待剪枝通道,该过程即为均匀剪枝。随后,根据所有网络层的初始待剪枝通道及其对应的通道信息(即通道标识)生成初始剪枝配置。
需要说明的是,在确定初始待剪枝通道之后,并不直接对待剪枝模型进行剪枝,而是通过后需的迭代剪枝对初始待剪枝通道进行更新,以获得最终的剪枝配置,根据该剪枝配置再对待剪枝模型进行剪枝。
基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。
在获得初始剪枝配置之后,利用训练图像及其对应的图像标签对待剪枝模型进行网络参数更新,基于更新后的网络参数以及剪枝目标重新确定待剪枝模型中的初始待剪枝通道,在网络参数地不断迭代更新后最终获得迭代待剪枝通道,根据迭代待剪枝通道以及其对应的通道信息生成目标剪枝配置。
现有剪枝方法中仅基于载入的预训练模型权重采用贪心法去分析,只能达到局部最优。这样分析出来的剪枝配置仅适合预训练模型,并不代表最终经过剪枝和微调训练后模型的效果就好。
而本发明提出的预剪枝方法中,每次剪枝之前都会重新对待剪枝模型进行整体分析(即根据各层网络层中每一通道的权重进行分析),因此,剪枝配置是在训练中不断动态调整的,所以最终得到的剪枝配置更优。在动态调整过程中,有些初始时被确定为待剪枝通道的,在经过迭代式的训练和分析后,可能不是最终的待剪枝通道,其角色是可变的,相较于现有的剪枝方法,具有更好的剪枝效果。
一次剪枝模块403,用于根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型;
在本模块中,通过上述预剪枝过程确定了达到全局最优的剪枝配置(即目标剪枝配置),利用该目标剪枝配置对待剪枝模型中各个网络层的通道进行一次剪枝(即one-shot剪枝),剪枝后的模型经过微调从而获得目标模型。
本发明实施例提供的模型剪枝装置,通过先对待剪枝模型进行预剪枝获得目标剪枝配置,再根据目标剪枝配置对待剪枝模型进行一次剪枝,从而获得目标模型。其中,预剪枝过程是先根据剪枝目标对待剪枝模型进行均匀剪枝获得初始剪枝配置,再进行迭代剪枝获得目标剪枝配置,从全局最优的角度设计预剪枝过程,因而获得全局最优的剪枝配置,使得复杂的待剪枝模型具有较好的剪枝效果。
图5是本发明实施例提供的图像处理装置的结构示意图;如图5所示,该图像处理装置包括图像获取模块501以及图像处理模块502。
图像获取模块501,用于获取待处理图像。
图像处理模块502,用于将所述待处理图像输入到训练好的图像处理模型中,通过所述训练好的图像处理模型对所述待处理图像进行处理,得到处理结果。
其中,所述训练好的图像处理模型为通过如上述的模型剪枝装置得到。
在本实施例中,通过上述模型剪枝方法获得训练好的图像处理模型,并将该训练好的图像处理模型移植在算力有限的终端中,该终端在获取待处理图像之后,将待处理图像输入至训练好的图像处理模型,直接得到预测结果,降低资源消耗并提升响应时间。举例来说,图像处理模型为标志牌分类模型,其在云端或者其他计算资源丰富的设备上完成训练与剪枝之后,被移植至自动驾驶的车端。车端在获取车辆周围的图像之后,通过该标志牌分类模型进行分类预测,得到分类结果。又或者,图像处理模型为人脸属性识别模型,用于识别输入的人脸图像中人的性别、年龄、种族等,那么,该人脸属性识别模型在经过训练与剪枝之后被移植至计算资源有限的终端中,对终端所获取的人脸图像进行识别,获得人脸识别结果。
本发明实施例提供的图像处理装置,基于上述提到的剪枝方法获得图像处理模型,利用该图像处理模型在计算资源有限的终端中实现图像处理,达到了降低资源消耗并提升响应时间的目的。
图6为本发明实施例提供的一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行模型剪枝方法,所述模型剪枝方法,包括:获取待剪枝模型以及其对应的剪枝目标;根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置;根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型;其中,所述根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置,包括:根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置;基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。
或以执行图像处理方法,所述图像处理方法,包括:获取待处理图像;将所述待处理图像输入到训练好的图像处理模型中,通过所述训练好的图像处理模型对所述待处理图像进行处理,得到处理结果;其中,所述训练好的图像处理模型为通过上述的模型剪枝方法得到。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行模型剪枝方法,所述模型剪枝方法,包括:获取待剪枝模型以及其对应的剪枝目标;根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置;根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型;其中,所述根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置,包括:根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置;基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。
或以执行图像处理方法,所述图像处理方法,包括:获取待处理图像;将所述待处理图像输入到训练好的图像处理模型中,通过所述训练好的图像处理模型对所述待处理图像进行处理,得到处理结果;其中,所述训练好的图像处理模型为通过上述的模型剪枝方法得到。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种模型剪枝方法,其特征在于,包括:
获取待剪枝模型以及其对应的剪枝目标,其中,所述待剪枝模型基于图像数据训练得到;
根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置;
根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型;
其中,所述根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置,包括:
根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置;
基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。
2.根据权利要求1所述的模型剪枝方法,其特征在于,所述剪枝目标为通道数剪枝比率;
所述根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置,包括:
获取所述待剪枝模型中每一网络层中各个通道的范数;
根据所述每一网络层中各个通道的范数大小对每一网络层的通道进行排序,以获得每一网络层的通道序列;
根据初始目标剪枝通道数从所述每一网络层的通道序列中确定初始待剪枝通道;其中,所述初始目标剪枝通道数根据所述通道数剪枝比率以及每一网络层的通道总数量计算得到;
根据所述初始待剪枝通道以及其对应的通道信息生成初始剪枝配置。
3.根据权利要求1所述的模型剪枝方法,其特征在于,所述剪枝目标为通道数剪枝比率;
所述基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置,包括:
S1,获取所述待剪枝模型中每一网络层中各个通道的范数;
S2,按照所述各个通道的范数大小对所有通道进行排序,以获得与所述待剪枝模型对应的通道序列;
S3,根据迭代目标剪枝通道数从与所述待剪枝模型对应的通道序列中确定迭代待剪枝通道;其中,所述迭代目标剪枝通道数根据所述通道数剪枝比率以及所述待剪枝模型的通道总数量计算得到;
S4,根据所述迭代待剪枝通道及其对应的通道信息对所述初始剪枝配置进行更新,以获得新的初始剪枝配置;
S5,利用训练图像及其对应的图像标签对所述待剪枝模型中每一网路层各个通道的网络参数进行更新,以获得更新后的网络参数;
S6,基于所述更新后的网络参数,重复执行所述步骤S1-S6,直到达到预设的迭代次数,获得最终的初始剪枝配置作为目标剪枝配置。
4.根据权利要求1所述的模型剪枝方法,其特征在于,所述根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型,包括:
根据所述目标剪枝配置对所述待剪枝模型进行一次剪枝,获得剪枝后模型;
根据预设的微调训练次数对所述剪枝后模型进行微调训练,获得目标模型。
5.根据权利要求3或4所述的模型剪枝方法,其特征在于,所述预设的迭代次数或所述预设的微调训练次数均根据待剪枝模型的剪枝训练参数确定;
其中,所述剪枝训练参数包括预剪枝迭代次数占比以及剪枝训练的总迭代次数;
所述预设的迭代次数为预剪枝迭代次数占比与剪枝训练的总迭代次数的乘积;
所述预设的微调训练次数为所述剪枝训练的总迭代次数与所述预设的迭代次数之间的差值。
6.一种图像处理方法,其特征在于,包括:
获取待处理图像;
将所述待处理图像输入到训练好的图像处理模型中,通过所述训练好的图像处理模型对所述待处理图像进行处理,得到处理结果;其中,所述训练好的图像处理模型为通过如权利要求1-5任一项所述的模型剪枝方法得到。
7.一种模型剪枝装置,其特征在于,包括:
待剪枝模型与剪枝目标获取模块,用于获取待剪枝模型以及其对应的剪枝目标,其中,所述待剪枝模型基于图像数据训练得到;
预剪枝模块,用于根据所述剪枝目标对所述待剪枝模型进行预剪枝,以获得目标剪枝配置;
一次剪枝模块,用于根据所述目标剪枝配置以及所述剪枝目标对所述待剪枝模型进行一次剪枝,获得目标模型;
其中,所述预剪枝模块具体用于:
根据所述剪枝目标对所述待剪枝模型中每一网络层的通道进行均匀剪枝,获得初始剪枝配置;
基于所述剪枝目标以及所述初始剪枝配置,对所述待剪枝模型中所有网络层的通道进行迭代剪枝,获得目标剪枝配置。
8.一种图像处理装置,其特征在于,包括:
图像获取模块,用于获取待处理图像;
图像处理模块,用于将所述待处理图像输入到训练好的图像处理模型中,通过所述训练好的图像处理模型对所述待处理图像进行处理,得到处理结果;其中,所述训练好的图像处理模型为通过如权利要求7所述的模型剪枝装置得到。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的模型剪枝方法或如权利要求6所述的图像处理方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的模型剪枝方法或如权利要求6所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211600306.1A CN116128044A (zh) | 2022-12-13 | 2022-12-13 | 一种模型剪枝方法、图像处理方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211600306.1A CN116128044A (zh) | 2022-12-13 | 2022-12-13 | 一种模型剪枝方法、图像处理方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116128044A true CN116128044A (zh) | 2023-05-16 |
Family
ID=86305422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211600306.1A Pending CN116128044A (zh) | 2022-12-13 | 2022-12-13 | 一种模型剪枝方法、图像处理方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116128044A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117058525A (zh) * | 2023-10-08 | 2023-11-14 | 之江实验室 | 一种模型的训练方法、装置、存储介质及电子设备 |
-
2022
- 2022-12-13 CN CN202211600306.1A patent/CN116128044A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117058525A (zh) * | 2023-10-08 | 2023-11-14 | 之江实验室 | 一种模型的训练方法、装置、存储介质及电子设备 |
CN117058525B (zh) * | 2023-10-08 | 2024-02-06 | 之江实验室 | 一种模型的训练方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11983245B2 (en) | Unmanned driving behavior decision-making and model training | |
US11347995B2 (en) | Neural architecture search with weight sharing | |
WO2019232772A1 (en) | Systems and methods for content identification | |
CN110930296B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN110956202B (zh) | 基于分布式学习的图像训练方法、系统、介质及智能设备 | |
CN111783997B (zh) | 一种数据处理方法、装置及设备 | |
CN110648289A (zh) | 图像的加噪处理方法及装置 | |
US20220083843A1 (en) | System and method for balancing sparsity in weights for accelerating deep neural networks | |
CN114282666A (zh) | 基于局部稀疏约束的结构化剪枝方法和装置 | |
CN111695624A (zh) | 数据增强策略的更新方法、装置、设备及存储介质 | |
CN114972850A (zh) | 多分支网络的分发推理方法、装置、电子设备及存储介质 | |
CN115018039A (zh) | 一种神经网络蒸馏方法、目标检测方法以及装置 | |
CN116050501A (zh) | 用于压缩卷积神经网络的系统和方法 | |
CN117726884B (zh) | 对象类别识别模型的训练方法、对象类别识别方法及装置 | |
CN116128044A (zh) | 一种模型剪枝方法、图像处理方法及相关装置 | |
US20220092391A1 (en) | System and method of using neuroevolution-enhanced multi-objective optimization for mixed-precision quantization of deep neural networks | |
US20230362416A1 (en) | Video processing method and apparatus, device, and storage medium | |
CN113361384A (zh) | 人脸识别模型压缩方法、设备、介质及计算机程序产品 | |
CN113011532A (zh) | 分类模型训练方法、装置、计算设备及存储介质 | |
CN116011550A (zh) | 一种模型剪枝方法、图像处理方法及相关装置 | |
CN116071472A (zh) | 图像生成方法及装置、计算机可读存储介质、终端 | |
CN114170484A (zh) | 图片属性预测方法、装置、电子设备和存储介质 | |
CN114065920A (zh) | 一种基于通道级剪枝神经网络的图像识别方法及系统 | |
CN112288748B (zh) | 一种语义分割网络训练、图像语义分割方法及装置 | |
CN113392867A (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 |