CN113837381B - 深度神经网络模型的网络剪枝方法、装置、设备及介质 - Google Patents

深度神经网络模型的网络剪枝方法、装置、设备及介质 Download PDF

Info

Publication number
CN113837381B
CN113837381B CN202111112277.XA CN202111112277A CN113837381B CN 113837381 B CN113837381 B CN 113837381B CN 202111112277 A CN202111112277 A CN 202111112277A CN 113837381 B CN113837381 B CN 113837381B
Authority
CN
China
Prior art keywords
model
pruning
channel
scaling
contribution
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
Application number
CN202111112277.XA
Other languages
English (en)
Other versions
CN113837381A (zh
Inventor
王滨
张峰
王星
周少鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN202111112277.XA priority Critical patent/CN113837381B/zh
Publication of CN113837381A publication Critical patent/CN113837381A/zh
Application granted granted Critical
Publication of CN113837381B publication Critical patent/CN113837381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例提供了一种深度神经网络模型的网络剪枝方法、装置、设备及介质,涉及人工智能技术领域,包括获得待剪枝模型中各个通道的缩放系数;利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量,对各个通道的输出值进行加权处理,得到模拟剪枝模型;利用样本数据对模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,得到每一通道校正后的缩放系数;返回确定贡献量的步骤,得到新的模拟剪枝模型,直至满足预设的相似条件;通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的缩放系数对待剪枝模型进行网络剪枝。本方案可以提高网络剪枝的准确度。

Description

深度神经网络模型的网络剪枝方法、装置、设备及介质
技术领域
本申请涉及人工智能技术领域,特别是涉及一种深度神经网络模型的网络剪枝方法、装置、设备及介质。
背景技术
随着深度学习技术的发展,深度神经网络模型的应用也越来越广泛。考虑到网络模型的参数多、运算量大,尤其是深度神经网络模型的参数更多、运算量更大,为了提高网络模型的运算速度,需要对网络模型进行剪枝,即压缩网络模型,去除网络模型中冗余的通道。
相关技术中,网络模型通常包含BN(Batch Normalization,批标准化)层,BN层用于对关联的网络层中各通道的输出值进行归一化处理,通过BN层可以获得网络层中各通道的缩放系数。现有技术中,认为每一通道的缩放系数可以直接反映该通道的重要性程度,在进行网络剪枝时,一般对缩放系数小于预设阈值的通道进行剪除,从而实现网络剪枝。
上述方案虽然可以实现网络剪枝,但是BN层是基于样本数据训练得到的,容易受到样本数据的影响,这样通过BN层所获得的缩放系数难以准确表征通道的重要性程度,从而使得在直接利用缩放系数确定被剪除的通道时,容易产生误剪除,进而导致网络剪枝的准确度较低。
发明内容
本申请实施例的目的在于提供一种深度神经网络模型的网络剪枝方法、装置、设备及介质,以提高网络剪枝的准确度。具体技术方案如下:
第一方面,本申请实施例提供了一种网络剪枝方法,所述方法包括:
获得待进行网络剪枝的待剪枝模型,通过所述待剪枝模型的批标准化BN层,获得所述待剪枝模型中各个通道的缩放系数;
利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,得到模拟剪枝模型;
利用样本数据对所述模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数;
返回所述利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量的步骤,得到新的模拟剪枝模型,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件;
通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对所述待剪枝模型进行网络剪枝。
第二方面,本申请实施例提供了一种网络剪枝装置,所述装置包括:
系数获得模块,用于获得待进行网络剪枝的待剪枝模型,通过所述待剪枝模型的批标准化BN层,获得所述待剪枝模型中各个通道的缩放系数;
贡献量确定模块,用于利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量;
模拟剪枝模块,用于以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,得到模拟剪枝模型;
系数校正模块,用于利用样本数据对所述模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数;触发所述贡献量确定模块,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件;
网络剪枝模块,用于通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对所述待剪枝模型进行网络剪枝。
第三方面,本申请实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的网络剪枝方法。
本申请实施例有益效果:
本申请实施例提供的网络剪枝方案中,可以获得待进行网络剪枝的待剪枝模型,通过待剪枝模型的批标准化BN层,获得待剪枝模型中各个通道的缩放系数;利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,这样可以利用各通道的贡献量对各通道的输出值进行抑制,实现模拟对模型进行网络剪枝,从而得到模拟剪枝模型;利用样本数据对模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数;返回利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量的步骤,得到新的模拟剪枝模型,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件,这种情况下,认为模拟剪枝模型趋近于稳定状态,从而模拟剪枝模型中BN层能够更为准确地反映各个通道的缩放系数;因此可以通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝,这样可以利用更为准确的缩放系数对待剪枝模型进行网络剪枝。由此可见,应用本申请实施例提供的方案可以提高网络剪枝的准确度。
除此之外,上述方案中以模拟的方式获得模拟剪枝模型,能够保留待剪枝模型完整的结构和参数,便于后续对待剪枝模型进行还原,实现对模型的柔性剪枝,从而提高网络剪枝的可靠性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本申请实施例提供的一种网络剪枝方法的流程示意图;
图2为本申请实施例提供的一种模拟剪枝过程的示意图;
图3为本申请实施例提供的另一种网络剪枝方法的流程示意图;
图4为本申请实施例提供的一种平滑处理后通道缩放系数分布的示意图;
图5为本申请实施例提供的一种不同缩放系数的通道数量分布的示意图;
图6为本申请实施例提供的又一种网络剪枝方法的流程示意图;
图7为本申请实施例提供的一种网络剪枝装置的结构示意图;
图8为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员基于本申请所获得的所有其他实施例,都属于本申请保护的范围。
为了提高网络剪枝的准确度,本申请实施例提供了一种深度神经网络模型的网络剪枝方法、装置、设备及介质,下面分别进行详细介绍。
本申请的一个实施例中,网络剪枝方法可以包括:
获得待进行网络剪枝的待剪枝模型,通过待剪枝模型的批标准化BN层,获得待剪枝模型中各个通道的缩放系数;
利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,得到模拟剪枝模型;
利用样本数据对模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数;
返回利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量的步骤,得到新的模拟剪枝模型,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件;
通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝。
上述实施例提供的网络剪枝方案中,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,这样可以利用各通道的贡献量对各通道的输出值进行抑制,实现模拟对模型进行网络剪枝,从而得到模拟剪枝模型;利用样本数据对模拟剪枝模型进行迭代训练,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件,这种情况下,认为模拟剪枝模型趋近于稳定状态,从而模拟剪枝模型中BN层能够更为准确地反映各个通道的缩放系数;因此可以通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝,这样可以利用更为准确的缩放系数对待剪枝模型进行网络剪枝。由此可见,应用上述实施例提供的方案可以提高网络剪枝的准确度。
除此之外,上述方案中以模拟的方式获得模拟剪枝模型,能够保留待剪枝模型完整的结构和参数,便于后续对待剪枝模型进行还原,实现对模型的柔性剪枝,从而提高网络剪枝的可靠性。
下面对上述网络剪枝方法进行详细介绍。
参见图1,图1为本申请实施例提供的一种网络剪枝方法的流程示意图,该方法可以应用于电子计算机、服务器、平板电脑等电子设备。该方法可以包括如下步骤S101-S104:
S101,获得待进行网络剪枝的待剪枝模型,通过待剪枝模型的批标准化BN层,获得待剪枝模型中各个通道的缩放系数。
其中,上述待剪枝模型为预先训练得到的深度神经网络模型,待剪枝模型中包含一个或多个网络层,每一网络层中存在至少一通道;
另外,待剪枝模型中还包含BN层,BN层可以对关联的网络层中各通道的输出值进行归一化处理,BN层的参数中包含关联的网络层中各个通道的缩放系数。
其中,每一通道的缩放系数可以反映:该通道对不同的输入数据的差异化处理性能,可以理解为,每一通道的缩放系数反映:当输入数据发生变化时,该通道的输出数据的变化程度。通道的缩放系数越大,则该通道的输入数据发生变化时,输出数据变化的程度越大;通道的缩放系数越小,则该通道的输入数据发生变化时,输出数据变化的程度越小。
具体的,可以获得待进行网络剪枝的网络模型,作为待剪枝模型,通过待剪枝模型中的BN层,获得待剪枝模型中各个通道的缩放系数。
本申请的一个实施例中,可以直接获得训练后的网络模型,作为待剪枝模型;
除此之外,也可以获得初始的网络模型,利用样本数据对初始的网络模型进行训练,得到训练后的网络模型,作为待剪枝模型。
本申请的一个实施例中,待剪枝模型中的BN层可以为:利用预设的稀疏化算法进行稀疏化训练得到的。
其中,上述稀疏化算法可以是L1正则化算法。
具体的,在训练上述待剪枝模型时,可以利用稀疏化算法对BN层中包含的缩放系数施加惩罚项,来对BN层进行稀疏化训练,能够使得BN层中包含的缩放系数变得稀疏,避免各个缩放系数的取值集中。
S102,利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,得到模拟剪枝模型。
具体的,每一通道的缩放系数可以反映:当输入数据发生变化时,该通道的输出数据的变化程度,而上述变化程度越大,则说明该通道对输入数据的处理越复杂,进而说明该通道的重要性越高,上述变化程度越小,则说明该通道对输入数据的处理越简单,进而说明该通道的重要性越低。也就是说,每一通道的缩放系数与该通道的重要性程度正相关。鉴于此,针对每一通道,可以利用该通道的缩放系数确定该通道的贡献量,上述贡献量可以用于衡量:该通道的输出值为模型输出最终结果做出的贡献,从而该通道的贡献量可以反映该通道的重要性程度。每一通道的缩放系数与该通道的贡献量正相关,通道的缩放系数越大,该通道的贡献量越大;通道的缩放系数越小,该通道的贡献量越小。
针对上述通道,可以将该通道的贡献量作为权重,对该通道的输出值乘以该通道的贡献量,从而实现对该通道输出值的加权处理。由于上述贡献量的取值范围一般为0~1之间,因此可以理解为利用贡献量对该通道的输出值进行了抑制,起到了对通道的剪枝效果,从而可以将上述过程作为对模型的模拟剪枝过程,最后得到模拟剪枝模型。
参见图2,图2为本申请实施例提供的一种模拟剪枝过程的示意图。假设待剪枝模型中包含通道A、B、C、D,所确定的上述4个通道的贡献量分别为1、0.33、0.33、0.33,以各个通道的贡献量为权重,分别对各个通道的输出值进行加权处理,相当于对通道产生抑制作用,模拟剪枝后网络模型的输出。通道的贡献量一般在0~1之间取值,当通道的贡献量为1时,说明该通道不受抑制,等价于剪枝后该通道被完全保留;当通道贡献量为0时,说明该通道被完全抑制,等价于该通道被剪除;而通道贡献量处于0和1之间时,表示该通道的输出被部分抑制。假设网络剪枝后剩余的单一通道的贡献量为1,这样可以将加权处理后贡献量为1的通道看作网络剪枝后剩余的通道,将加权处理后贡献量之和为1的通道合并看作网络剪枝后剩余的一个通道,因此,可以将加权处理后通道A看作网络剪枝后将会剩余的通道,将加权处理后通道B、C、D合并看作网络剪枝后将会剩余的一个通道E,从而得到包含通道A和E的模拟剪枝模型。需要说明的是,上述过程为模拟过程,在实际应用过程中并不会对通道进行合并、剪枝。
上述方案中以模拟的方式获得模拟剪枝模型,能够达到模拟剪枝的效果,并且能够保留待剪枝模型完整的结构和参数,便于后续对待剪枝模型进行还原,实现对模型的柔性剪枝,从而提高网络剪枝的可靠性。
S103,利用样本数据对模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数,返回步骤S102,得到新的模拟剪枝模型,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件。
具体的,在得到模拟剪枝模型后,由于模型发生了变化,因此需要利用样本数据重新对模拟剪枝模型进行训练,从而得到重新训练后模拟剪枝模型的BN层,由于在获得模拟剪枝模型时利用重新训练前各个通道的贡献量对BN层中各通道的缩放系数进行了加权处理,因此在基于重新训练后模拟剪枝模型的BN层获得各通道的缩放系数后,针对每一通道,需要再次利用重新训练前该通道的贡献量,对新获得的该通道的缩放系数进行校正,从而得到该通道校正后的缩放系数;
之后可以返回上述步骤S102,重新利用各个通道校正后的缩放系数确定各个通道新的贡献量,以各个通道新的贡献量为权重,对各个通道的输出值再次进行加权处理,得到新的模拟剪枝模型,并判断上述新的模拟剪枝模型与上一次获得的模型剪枝模型是否满足相似条件;
若为否,则说明模拟剪枝模型未趋于稳定,因此需要再次返回步骤S102,重新执行上述步骤;
若为是,则说明模拟剪枝模型趋于稳定,可以结束循环,得到最新的模拟剪枝模型。
本申请的一个实施例中,在对各个通道的缩放系数进行校正时,针对每一通道,计算重新训练之前所确定的该通道的贡献量、与重新训练后通过BN层获得的该通道的缩放系数的乘积,实现对该通道的缩放系数的校正,得到该通道校正后的缩放系数。
除此之外,还可以计算重新训练之前所确定的该通道的贡献量、与重新训练后通过BN层获得的该通道的缩放系数、与预设校正系数的乘积,作为该通道校正后的缩放系数。
本申请的一个实施例中,在对模拟剪枝模型重新训练时,可以重置模拟剪枝模型中BN层的参数,并回调模拟剪枝模型中BN层的学习率;利用样本数据对回调处理后的模拟剪枝模型重新训练。
具体的,在对模拟剪枝模型进行训练时,可以首先将模拟剪枝模型中BN层的参数重置为初始的参数,并将BN层的学习率回调至初始的学习率,然后利用样本数据对回调后的模拟剪枝模型进行训练。这样可以防止迭代训练过程中BN层的学习率过于衰减从而陷入局部最优状态,避免模型的泛化能力受到干扰。
本申请的一个实施例中,上述相似条件可以是:新的模拟剪枝模型与上一次得到的模拟剪枝模型之间的相似度达到预设的相似阈值;也可以是,新的模拟剪枝模型的模型架构与上一次得到的模拟剪枝模型的模型架构相同,本申请实施例并不对此进行限定。
S104,通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝。
具体的,新的模拟剪枝模型为趋近于稳定状态下的模拟剪枝模型,因此该新的模拟剪枝模型中BN层能够更为准确地反映各个通道的缩放系数,进而可以通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝。
参见图3,图3为本申请实施例提供的另一种网络剪枝方法的流程示意图,对于上述步骤S104,可以通过如下步骤S1041-S1043实现:
S1041,通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,根据待剪枝模型的通道数量和预设的剪枝率,确定所要剪除的通道的剪除数量。
具体的,可以计算待剪枝模型中通道的总数量与预设的剪枝率的乘积,得到所要剪除的通道的数量,作为剪除数量。
S1042,根据所获得的各个通道的缩放系数,确定缩放系数最小的剪除数量个待剪除通道。
具体的,通道的缩放系数可以反映通道的重要性程度,在通过新的模拟剪枝模型的BN层获得各个通道的缩放系数后,可以从待剪枝模型的通道中,选择缩放系数最小的剪除数量个通道,作为待剪除通道。
S1043,从待剪枝模型中剪除所确定的待剪除通道。
具体的,可以对待剪枝模型中的待剪除通道进行剪除,实现网络剪枝。
除此之外,本申请的一个实施例中,在进行网络剪枝时,也可以在通过新的模拟剪枝模型的BN层获得各个通道的缩放系数后,选择缩放系数小于预设的缩放系数阈值的通道,作为待剪除通道,从待剪枝模型中剪除上述待剪除通道。
上述实施例提供的网络剪枝方案中,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,这样可以利用各通道的贡献量对各通道的输出值进行抑制,实现模拟对模型进行网络剪枝,从而得到模拟剪枝模型;利用样本数据对模拟剪枝模型进行迭代训练,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件,这种情况下,认为模拟剪枝模型趋近于稳定状态,从而模拟剪枝模型中BN层能够更为准确地反映各个通道的缩放系数;因此可以通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝,这样可以利用更为准确的缩放系数对待剪枝模型进行网络剪枝。由此可见,应用上述实施例提供的方案可以提高网络剪枝的准确度。
除此之外,上述方案中以模拟的方式获得模拟剪枝模型,能够保留待剪枝模型完整的结构和参数,便于后续对待剪枝模型进行还原,实现对模型的柔性剪枝,从而提高网络剪枝的可靠性。
下面对上述步骤S102进行详细介绍。
本申请的一个实施例中,在确定各个通道的贡献量时,可以对各个通道的缩放系数进行平滑处理;基于预设的约束条件,利用平滑处理后各个通道的缩放系数,计算各个通道的贡献量。
其中,约束条件为:所计算的各个通道的贡献量之和=按照预设的剪枝率对待剪枝模型剪枝后剩余的通道数量x预设贡献量。
预设贡献量为:剪枝后剩余的单一通道预设的贡献量。
具体的,可以首先对各个通道的缩放系数进行平滑处理,以增大各个通道的缩放系数的差异程度,避免各个通道的缩放系数过于集中;
可以假设剪枝后剩余的各个通道各自的贡献量相等,均为上述预设贡献量,利用预设的剪枝率和待剪枝模型总的通道数量,可以计算得到剪枝后剩余的通道数量,基于上述预设贡献量和剪枝后剩余的通道的数量,可以计算得到剪枝后总的贡献量,上述约束条件即为:当前所计算的各个通道的贡献量之和,等于上述总的贡献量;
之后可以基于上述约束条件,利用平滑处理后各个通道的缩放系数,计算各个通道的贡献量。
本申请的一个实施例中,在对各个通道的缩放系数进行平滑处理时,可以:
针对每一通道,根据预设的剪枝率、全局缩放阈值和平滑系数,对该通道的缩放系数进行平滑处理。
其中,平滑系数用于控制平滑处理后不同通道的缩放系数的差异化程度。
具体的,利用预设的剪枝率、全局缩放阈值和平滑系数,可以对各个通道的缩放系数进行平滑处理,增大各个通道的缩放系数的差异程度。
本申请的一个实施例中,针对每一通道,可以按照以下公式对该通道的缩放系数进行平滑处理:
其中,Sγ表示该通道平滑处理后的缩放系数,γ表示通过BN层获得的该通道的缩放系数,P表示预设的剪枝率,γf表示预设的全局缩放阈值,u表示预设的平滑系数。
上述u的取值范围可以是(0,+∞),u的取值可以影响平滑处理后通道的缩放系数的分布。
参见图4,图4为本申请实施例提供的一种平滑处理后通道缩放系数分布的示意图,图4中各个图表的纵坐标表示平滑处理后通道的缩放系数。当u的取值为0时,平滑处理后通道的缩放系数为0或1,如图4中(a)表所示,这种情况下基于平滑处理后通道的缩放系数,可以将通道极端地区分为“有效通道”和“无效通道”,即认为缩放系数为0的通道为无效通道,缩放系数为1的通道为有效通道;当逐步增大平滑系数u时,平滑处理后不同通道的缩放系数的差异逐渐缩小,如图4中(b)、(c)、(d)所示;当平滑系数u无穷大时,平滑处理后不同通道的缩放系数趋于相同,难以区分不同通道的重要性程度的差异。由此可见,利用平滑函数可更灵活的控制平滑处理后不同通道重要性程度的分布。
本申请的一个实施例中,可以设置上述平滑系数u为1,可以既可以利用平滑处理后各通道的缩放系数区分不同通道的重要性,又能够避免极端地将各通道划分为有效通道和无效通道。
本申请的一个实施例中,在对该通道的缩放系数进行平滑处理之后,还可以对各个通道平滑处理后的缩放系数进行归一化处理,这样可以进一步增强平滑处理后不同通道的缩放系数的差异性程度。
本申请的一个实施例中,可以按照以下公式对通道平滑处理后的缩放系数Sγ进行归一化处理:
(Sγ-S0)/(1-S0)
其中,S0表示:对取值为0的缩放系数进行平滑处理所得到的结果。
在计算各个通道的贡献量时,考虑到每一通道的贡献量除了与该通道的缩放系数相关之外,也会受到其他通道的缩放系数的影响。鉴于此,本申请的一个实施例中,在计算各个通道的贡献量时,可以:
对平滑处理后各个通道的缩放系数进行排序,得到各个通道缩放系数的排序队列;针对每一通道,根据排序队列中与该通道的缩放系数相邻的多个缩放系数,确定该通道的贡献干扰量,基于约束条件,利用平滑处理后该通道的缩放系数及贡献干扰量,计算该通道的贡献量。
具体的,通道的缩放系数往往呈现多峰分布,在某些缩放系数的区间内,通道的数量高度集中,这会使得在数值上非常接近的缩放系数在排序后的位序上间隔很大。例如,参见图5,图5为本申请实施例提供的一种不同缩放系数的通道数量分布的示意图,由图5可知,针对两组缩放系数(x1,x2)和(x3,x4),虽然(x2-x1)≈(x3-x4),但在位序距离上,(x1,x2)之间的位序距离远大于(x3,x4)之间的位序距离。除此之外,缩放系数位序相邻的通道之间,会对通道的贡献量产生干扰。
基于上述内容,在计算各通道的贡献量时,可以获得各个通道缩放系数的排序队列,利用上述排序队列计算相邻的缩放系数产生的贡献干扰量,然后利用各个通道的缩放系数和贡献干扰量,计算各个通道的贡献量。
这样在获得各个通道的贡献量时,可以充分融合分布密集的缩放系数的排序信息,克服各通道的缩放系数分布过于集中的缺陷。
本申请的一个实施例中,针对每一通道,按照以下步骤a-步骤c确定该通道的贡献干扰量:
步骤a,确定排序队列中与该通道的缩放系数相邻的之前和/或之后预设数量个缩放系数,作为干扰缩放系数。
其中,上述预设数量可以是5、10、15等,本申请实施例并不对此进行限定。
具体的,针对每一通道,可以将排序队列中与该通道的缩放系数相邻的之前和/或之后预设数量个缩放系数,作为能够对该通道的贡献量产生干扰的干扰缩放系数。
步骤b,针对每一干扰缩放系数,根据排序队列中该干扰缩放系数相对该通道的缩放系数的距离,确定该干扰缩放系数对该通道贡献量的干扰权重。
具体的,对于每一干扰缩放系数,该干扰缩放系数对上述通道的贡献量能够产生干扰的程度,与排序队列中该干扰缩放系数相对该通道的缩放系数的距离相关,因此可以基于上述距离,确定该干扰缩放系数对该通道贡献量的干扰权重。
本申请的一个实施例中,针对每一干扰缩放系数,按照以下公式确定该干扰缩放系数对该通道贡献量的干扰权重D:
其中,l表示排序队列中该干扰缩放系数相对该通道的缩放系数的距离,r表示预设数量。
本申请的一个实施例中,上述r的取值可以为:
r=N(1-P)*z。
其中,N表示待剪枝模型的通道数量,P表示预设的剪枝率,z表示:针对每一通道,能够干扰该通道贡献量的通道数量占剪枝后通道总数量的比例,例如,z的取值可以为1/10。
步骤c,根据各个干扰缩放系数以及各个干扰缩放系数对该通道贡献量的干扰权重,确定该通道的贡献干扰量。
本申请的一个实施例中,可以计算每一干扰缩放系数与该干扰缩放系数的干扰权重的乘积;统计计算得到的各个乘积之和,作为该通道的贡献干扰量。
具体的,由于各个干扰缩放系数均可以对该通道的缩放系数产生不同程度的干扰,而各个干扰缩放系数产生的干扰程度与该干扰缩放系数的权重相关,每一干扰缩放系数与对应的干扰权重的乘积,可以反映该干扰缩放系数产生的干扰量,统计各个干扰缩放系数所产生的干扰量之和,可以得到各个干扰缩放系数共同对该通道的缩放系数产生的干扰量,作为该通道对应的贡献干扰量。
在上述方案的基础上,对上述公式进行整合,可以按照以下公式计算排序队列中第k个缩放系数对应的通道的贡献量Mk
C=N(1-P)*g
其中,C表示各个通道的贡献量之和,N表示待剪枝模型的通道数量,P表示剪枝率,g表示预设贡献量,g的取值可以为1;Sk表示排序队列中第k个缩放系数,Sk-l表示排序队列中第k-l个的缩放系数,Sk+l表示排序队列中第k+l个的缩放系数。
参见图6,图6为本申请实施例提供的又一种网络剪枝方法的流程示意图,该方法包括如下步骤S601-S609:
S601,获得待进行网络剪枝的待剪枝模型,通过待剪枝模型的BN层,获得待剪枝模型中各个通道的缩放系数。
其中,上述待剪枝模型中的BN层为:利用预设的稀疏化算法进行稀疏化训练得到的。
S602,对各个通道的缩放系数进行平滑处理,对平滑处理后各个通道的缩放系数进行排序,得到各个通道缩放系数的排序队列。
S603,针对每一通道,根据排序队列中与该通道的缩放系数相邻的多个缩放系数,确定该通道的贡献干扰量,基于约束条件,利用平滑处理后该通道的缩放系数及贡献干扰量,计算该通道的贡献量。
S604,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,得到模拟剪枝模型。
S605,重置模拟剪枝模型中BN层的参数,并回调模拟剪枝模型中BN层的学习率。
S606,利用样本数据对回调后模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量。
S607,针对每一通道,计算重新训练之前所确定的该通道的贡献量、与重新训练后通过BN层获得的该通道的缩放系数的乘积,实现对该通道的缩放系数的校正,得到该通道校正后的缩放系数。
S608,返回步骤S602,得到新的模拟剪枝模型,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件。
S609,根据待剪枝模型的通道数量和预设的剪枝率,确定所要剪除的通道的剪除数量;根据所获得的各个通道的缩放系数,确定缩放系数最小的剪除数量个待剪除通道;从待剪枝模型中剪除所确定的待剪除通道。
本申请的一个实施例中,待剪枝模型为:对初始的网络模型放大处理后的模型。
具体的,可以首先将初始的网络模型进行等比例放大,从而提高模型的精度,然后再对其进行剪枝,获得与初始的网络模型计算量相同的剪枝后网络模型,并使得其中一些网络层的通道数多于初始的网络模型中网络层的通道数。以此在不增加网络模型的计算量的同时,可以获得更高的精度。
上述实施例提供的网络剪枝方案中,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,这样可以利用各通道的贡献量对各通道的输出值进行抑制,实现模拟对模型进行网络剪枝,从而得到模拟剪枝模型;利用样本数据对模拟剪枝模型进行迭代训练,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件,这种情况下,认为模拟剪枝模型趋近于稳定状态,从而模拟剪枝模型中BN层能够更为准确地反映各个通道的缩放系数;因此可以通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝,这样可以利用更为准确的缩放系数对待剪枝模型进行网络剪枝。由此可见,应用上述实施例提供的方案可以提高网络剪枝的准确度。
除此之外,上述方案中以模拟的方式获得模拟剪枝模型,能够保留待剪枝模型完整的结构和参数,便于后续对待剪枝模型进行还原,实现对模型的柔性剪枝,从而提高网络剪枝的可靠性。
下面结合具体实验对本申请实施例提供的网络剪枝方案进行介绍。
(1)实验设置
数据集:实验采用CIFAR-10/100数据集,该数据集被广泛用于对网络剪枝方法进行评估。CIFAR-10/100数据集中分别包括了50K个训练数据和10K个测试数据,上述训练数据和测试数据均为图像,每张图像的像素大小为32×32,CIFAR-10数据集中的各个图像,按照图像内容所属类别可以分为10种图像类别,CIFAR-100数据集中的各个图像,按照图像内容所属类别可以分为100种图像类别。可以预先对CIFAR-10/100数据集中的数据进行预处理,例如,可以进行图像增强处理、图像去噪声处理、数据滤波处理等。
模型和实验环境:本实验中采用的模型为VGG-16模型和ResNet56模型,实验所采用的处理平台为GPU(Graphics Processing Unit,图形处理器),上述GPU的型号为GeForceRTX 2080ti,模型采用的代码由Pytorch编程框架编程得到。
正常训练:首先需要对上述模型进行训练,训练过程中使用SGD作为优化器,设置训练动量为0.9,权重衰减参数为0.0001,初始学习率为0.1。训练过程中,同时代入训练的数据量Batch size设置为64。训练批次设置为160个批次,在第80(即第50%批次)和第120(即第75%批次)训练批次处,调整学习率下降为当前学习率的1/10。在实验过程中,对待训练的模型的网络参数进行kaiming初始化,其中,VGG16模型、ResNet56模型中BN层的通道的缩放系数的初始值分别为0.5、1,初始偏置为0。
稀疏训练:在训练过程中,通过对BN层的缩放系数施加L1惩罚项,来对模型的BN层进行稀疏化训练。对于VGG16模型选择10-4作为稀疏率,对于ResNet56模型则选择10-5作为稀疏率。所有其他设置与正常训练保持一致。
缩放系数适配调整:在训练过程中初始化BN层的系数和学习率,保持其他网络层的学习率不变。对BN层训练40个批次,并在第10(即第25%批次)和第30(即第75%批次)训练批次处,调整BN层的学习率下降10倍。
微调:在得到训练后的模型后,可以利用不同的网络剪枝方法对模型进行网络剪枝,对网络剪枝后的模型可以训练40个批次,实现对剪枝后模型的微调,微调过程中保持学习率为0.001。其中当剪枝率较大时,可以使用重新训练的结果作为最终精度。
参见下表1,下表1表示基于CIFAR-10/100数据集训练得到VGG16模型后,利用不同网络剪枝方法进行网络剪枝的结果。
表1
/>
其中,上述Baseline表示不对训练后的模型进行网络剪枝,方法1~方法2分别为其他网络剪枝方法,方法3为本申请实施例提供的网络剪枝方法,精度反映模型进行数据处理的准确度,精度下降表示:按照对应的网络剪枝方法剪枝后模型的精度相对剪枝前模型的精度下降的比例;浮点计算量表征模型运行时产生的计算量,浮点计算量减少比表示:按照对应的网络剪枝方法剪枝后模型的浮点计算量相对剪枝前模型的浮点计算量下降的比例。
由上述表1可见,在浮点计算量分别降低55%和45%的情况下,采用本方案进行网络剪枝后的模型的精度保持为94.04%和74.33%,与剪枝前模型的精度较为接近,并相对采用方法1、方法2进行网络剪枝后模型的精度分别提高了0.12%和0.08%,可见采用本方案进行网络剪枝能够减小模型精度下降的幅度。
参见下表2,下表2表示基于CIFAR-10数据集训练得到VGG16模型后,在较大的剪枝率下,利用不同网络剪枝方法进行网络剪枝的结果。
表2
其中,上述Baseline表示不对训练后的模型进行网络剪枝,方法1、方法4、方法5分别为其他网络剪枝方法,方法3为本申请实施例提供的网络剪枝方法,网络架构表示模型不同网络层的通道数,总通道数表示模型的各个网络层中通道数之和,浮点计算量表征模型运行时产生的计算量;参数量表示模型中所包含的参数的数量;精度(Scratch-E)反映采用Scratch-E方式对模型重训练后进行数据处理的准确度,精度(Scratch-B)反映采用Scratch-B方式对模型重训练后进行数据处理的准确度。
为公平地比较不同网络剪枝方法的性能,本实验首先分别采用两种方法Scratch-E、Scratch-B来对各模型进行重新训练。其中Scratch-E表示:使用与初始的训练阶段相同的160个训练批次来对模型进行重新训练,Scratch-B则表示:使用与初始的训练阶段相同的计算预算来对模型进行重新训练,例如网络剪枝后的模型比初始的模型减少了一半的计算量,则可以用两倍的训练批次来对网络剪枝后的模型进行重新计算。由上述表2可知,首先对比网络剪枝方法1,本申请提供的方法3在剪枝率为74%的情况下,剪枝后模型的通道数、计算量、参数量更低,并且剪枝后模型的精度更高。在与方法4的对比中可以看出,在相同的剪枝率下,本申请的方法3在剪枝率为74%的情况下得到的架构计算量更大,精度也更高。而在相当的计算量下,本申请的方法3在剪枝率为76%的情况下与采用方法4进行网络剪枝后模型的精度非常接近。在架构上,本申请的方法3在剪枝率为76%的情况下与采用方法4进行网络剪枝后模型在前6层的通道数非常接近,每层的通道数的差别都在10以内,而在后面几层,本申请的方法3剪除掉了更多通道。最后本申请的方法3与方法5进行对比,在相同的浮点计算量下,本申请的方法3在剪枝率为80%的情况下,在两种训练方法Scratch-E、Scratch-B下得到的模型的精度比采用方法5剪枝后模型的精度分别高了0.49%和0.53%。在相同的剪枝率下,本申请的方法3在剪枝率为86%的情况下,虽然在训练方法Scratch-E下重新训练得到的模型的精度比采用方法5剪枝后模型的精度低了0.51%,但在训练方法Scratch-B下重新训练得到的模型的精度提高了0.17%。实验结果表明,在大剪枝率下,本申请的网络剪枝方法得到的网络架构性能超过了一些当下其他的剪枝方法得到的网络架构。
参见下表3,下表3表示基于CIFAR-10/100数据集训练得到Resnet56模型后,利用不同网络剪枝方法进行网络剪枝的结果。
表3
其中,上述Baseline表示不对训练后的模型进行网络剪枝,方法1、方法2、方法6、方法7和方法8分别为其他网络剪枝方法,方法3为本申请实施例提供的网络剪枝方法,精度反映模型进行数据处理的准确度,精度下降表示:按照对应的网络剪枝方法剪枝后模型的精度相对剪枝前模型的精度下降的比例;浮点计算量表征模型运行时产生的计算量,浮点计算量减少比表示:按照对应的网络剪枝方法剪枝后模型的浮点计算量相对剪枝前模型的浮点计算量下降的比例。
表3显示了Resnet56模型在CIFAR10/100上数据集进行实验的网络剪枝结果。在相同浮点计算量下,针对CIFAR10、CIFAR100数据集,本申请的方法3进行网络剪枝后模型的精度比方法1进行网络剪枝后模型的精度分别提高了0.58%和1.11%,而与方法2进行网络剪枝后模型的精度非常接近,分别高了0.02%和0.08%。另外,在相同计算量下,本申请的方法3进行网络剪枝后模型的精度达到93.85%,高于一些其他的网络剪枝方法。
参见下表4,下表4表示基于CIFAR-10/100数据集训练得到VGG16模型、Resnet56模型后,利用本申请实施例提供的网络剪枝方法分别对上述模型进行网络剪枝的结果。
表4
其中,上述Baseline表示不对训练后的模型进行网络剪枝,ours表示本申请实施例提供的网络剪枝方法,精度反映模型进行数据处理的准确度,精度提升表示:按照本申请的网络剪枝方法剪枝后模型的精度相对剪枝前模型的精度提升的比例;浮点计算量表征模型运行时产生的计算量,总通道数表示模型的各个网络层中通道的数量之和。
本申请实施例提供的网络剪枝方法不仅适用于网络压缩,同时还可以在计算量相同的情况下,对原模型进行重构,提高模型的精度。具体地,可以首先将原模型的网络结构等比例放大,再对其进行网络剪枝,从而获得与原模型计算量相同的剪枝后模型,并使得其中一些网络层的通道数多于原模型中该层的通道数。从而在不增加计算量的同时调整其各网络层的通道数,获得更高的精度。表4显示在CIFAR10/100数据集上,对VGG16模型和Resnet56模型进行重构后,再重新训练来提升精度,之后再进行网络剪枝后所得模型的结果。如表4所示,相比原始模型,在同等的浮点计算量下,上述方法重构的VGG16模型在精度上分别提升了0.32%和0.37%,重构的Resnet56模型在精度上分别提升了0.24%和0.23%。通过上述实验说明,本申请实施例提供的方案可以获得同等计算量下精度更高的模型。
上述实施例提供的网络剪枝方案中,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,这样可以利用各通道的贡献量对各通道的输出值进行抑制,实现模拟对模型进行网络剪枝,从而得到模拟剪枝模型;利用样本数据对模拟剪枝模型进行迭代训练,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件,这种情况下,认为模拟剪枝模型趋近于稳定状态,从而模拟剪枝模型中BN层能够更为准确地反映各个通道的缩放系数;因此可以通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝,这样可以利用更为准确的缩放系数对待剪枝模型进行网络剪枝。由此可见,应用上述实施例提供的方案可以提高网络剪枝的准确度。
除此之外,上述方案中以模拟的方式获得模拟剪枝模型,能够保留待剪枝模型完整的结构和参数,便于后续对待剪枝模型进行还原,实现对模型的柔性剪枝,从而提高网络剪枝的可靠性。
与上述网络剪枝方法相对应地,本申请实施例还提供了一种网络剪枝装置,下面进行详细介绍。
参见图7,图7为本申请实施例提供的一种网络剪枝装置的结构示意图,所述装置包括:
系数获得模块701,用于获得待进行网络剪枝的待剪枝模型,通过所述待剪枝模型的批标准化BN层,获得所述待剪枝模型中各个通道的缩放系数;
贡献量确定模块702,用于利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量;
模拟剪枝模块703,用于以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,得到模拟剪枝模型;
系数校正模块704,用于利用样本数据对所述模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数;触发所述贡献量确定模块,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件;
网络剪枝模块705,用于通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对所述待剪枝模型进行网络剪枝。
本申请的一个实施例中,所述贡献量确定模块702,包括:
系数平滑子模块,用于对各个通道的缩放系数进行平滑处理;
贡献量计算子模块,用于基于预设的约束条件,利用平滑处理后各个通道的缩放系数,计算各个通道的贡献量,其中,所述约束条件为:所计算的各个通道的贡献量之和=按照预设的剪枝率对所述待剪枝模型剪枝后剩余的通道数量x预设贡献量,所述预设贡献量为:剪枝后剩余的单一通道预设的贡献量。
本申请的一个实施例中,所述贡献量计算子模块,包括:
系数排序单元,用于对平滑处理后各个通道的缩放系数进行排序,得到各个通道缩放系数的排序队列;
贡献量计算单元,用于针对每一通道,根据所述排序队列中与该通道的缩放系数相邻的多个缩放系数,确定该通道的贡献干扰量,基于所述约束条件,利用平滑处理后该通道的缩放系数及所述贡献干扰量,计算该通道的贡献量。
本申请的一个实施例中,所述贡献量计算单元,具体用于:
针对每一通道,按照以下方式确定该通道的贡献干扰量:
确定所述排序队列中与该通道的缩放系数相邻的之前和/或之后预设数量个缩放系数,作为干扰缩放系数;
针对每一干扰缩放系数,根据所述排序队列中该干扰缩放系数相对该通道的缩放系数的距离,确定该干扰缩放系数对该通道贡献量的干扰权重;
根据各个干扰缩放系数以及各个干扰缩放系数对该通道贡献量的干扰权重,确定该通道的贡献干扰量。
本申请的一个实施例中,所述贡献量计算单元,具体用于:
针对每一干扰缩放系数,按照以下公式确定该干扰缩放系数对该通道贡献量的干扰权重D:
其中,所述l表示所述排序队列中该干扰缩放系数相对该通道的缩放系数的距离,所述r表示所述预设数量。
本申请的一个实施例中,所述r的取值为:
r=N(1-P)*z。
其中,N表示待剪枝模型的通道数量,所述z表示:针对每一通道,能够干扰该通道贡献量的通道数量占剪枝后通道总数量的比例。
本申请的一个实施例中,所述贡献量计算单元,具体用于:
计算每一干扰缩放系数与该干扰缩放系数的干扰权重的乘积;
统计计算得到的各个乘积之和,作为该通道的贡献干扰量。
本申请的一个实施例中,所述贡献量计算单元,具体用于:
按照以下公式计算所述排序队列中第k个缩放系数对应的通道的贡献量Mk
C=N(1-P)*g
其中,所述C表示各个通道的贡献量之和,所述N表示所述待剪枝模型的通道数量,所述P表示所述剪枝率,所述g表示所述预设贡献量,所述Sk表示所述排序队列中第k个缩放系数,所述Sk-l表示所述排序队列中第k-l个的缩放系数,所述Sk+l表示所述排序队列中第k+l个的缩放系数。
本申请的一个实施例中,所述系数平滑子模块,具体用于:
针对每一通道,根据预设的剪枝率、全局缩放阈值和平滑系数,对该通道的缩放系数进行平滑处理,其中,所述平滑系数用于控制平滑处理后不同通道的缩放系数的差异化程度。
本申请的一个实施例中,所述系数平滑子模块,具体用于:
针对每一通道,按照以下公式对该通道的缩放系数进行平滑处理:
其中,所述Sγ表示该通道平滑处理后的缩放系数,所述γ表示通过所述BN层获得的该通道的缩放系数,所述P表示预设的剪枝率,所述γf表示预设的全局缩放阈值,所述u表示预设的平滑系数。
本申请的一个实施例中,所述系数校正模块704,具体用于:
重置所述模拟剪枝模型中BN层的参数,并回调所述模拟剪枝模型中BN层的学习率;
利用样本数据对回调处理后的所述模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数;触发所述贡献量确定模块,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件。
本申请的一个实施例中,所述网络剪枝模块705,具体用于:
根据所述待剪枝模型的通道数量和预设的剪枝率,确定所要剪除的通道的剪除数量;
通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,根据所获得的各个通道的缩放系数,确定缩放系数最小的所述剪除数量个待剪除通道;
从所述待剪枝模型中剪除所确定的待剪除通道。
本申请的一个实施例中,所述待剪枝模型中的BN层为:利用预设的稀疏化算法进行稀疏化训练得到的。
本申请的一个实施例中,所述待剪枝模型为:对初始的网络模型放大处理后的模型。
上述实施例提供的网络剪枝方案中,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,这样可以利用各通道的贡献量对各通道的输出值进行抑制,实现模拟对模型进行网络剪枝,从而得到模拟剪枝模型;利用样本数据对模拟剪枝模型进行迭代训练,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件,这种情况下,认为模拟剪枝模型趋近于稳定状态,从而模拟剪枝模型中BN层能够更为准确地反映各个通道的缩放系数;因此可以通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝,这样可以利用更为准确的缩放系数对待剪枝模型进行网络剪枝。由此可见,应用上述实施例提供的方案可以提高网络剪枝的准确度。
本申请实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现网络剪枝方法的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一网络剪枝方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一网络剪枝方法。
上述实施例提供的网络剪枝方案中,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,这样可以利用各通道的贡献量对各通道的输出值进行抑制,实现模拟对模型进行网络剪枝,从而得到模拟剪枝模型;利用样本数据对模拟剪枝模型进行迭代训练,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件,这种情况下,认为模拟剪枝模型趋近于稳定状态,从而模拟剪枝模型中BN层能够更为准确地反映各个通道的缩放系数;因此可以通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对待剪枝模型进行网络剪枝,这样可以利用更为准确的缩放系数对待剪枝模型进行网络剪枝。由此可见,应用上述实施例提供的方案可以提高网络剪枝的准确度。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例、电子设备实施例、计算机可读存储介质实施例、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (12)

1.一种网络剪枝方法,其特征在于,所述方法包括:
获得待进行网络剪枝的待剪枝模型,通过所述待剪枝模型的批标准化BN层,获得所述待剪枝模型中各个通道的缩放系数;所述待剪枝模型为图像处理模型;
利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量,以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,得到模拟剪枝模型;所述模拟剪枝模型为图像处理模型,所述贡献量用于衡量各通道的输出值为所述待剪枝模型输出最终图像处理结果作出的贡献;
利用样本数据对所述模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数;所述样本数据为图像数据;
返回所述利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量的步骤,得到新的模拟剪枝模型,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件;
通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对所述待剪枝模型进行网络剪枝。
2.根据权利要求1所述的方法,其特征在于,所述利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量,包括:
对各个通道的缩放系数进行平滑处理;
基于预设的约束条件,利用平滑处理后各个通道的缩放系数,计算各个通道的贡献量,其中,所述约束条件为:所计算的各个通道的贡献量之和=按照预设的剪枝率对所述待剪枝模型剪枝后剩余的通道数量x预设贡献量,所述预设贡献量为:剪枝后剩余的单一通道预设的贡献量。
3.根据权利要求2所述的方法,其特征在于,所述基于预设的约束条件,利用平滑处理后各个通道的缩放系数,计算各个通道的贡献量,包括:
对平滑处理后各个通道的缩放系数进行排序,得到各个通道缩放系数的排序队列;
针对每一通道,根据所述排序队列中与该通道的缩放系数相邻的多个缩放系数,确定该通道的贡献干扰量,基于所述约束条件,利用平滑处理后该通道的缩放系数及所述贡献干扰量,计算该通道的贡献量。
4.根据权利要求3所述的方法,其特征在于,所述针对每一通道,根据所述排序队列中与该通道的缩放系数相邻的多个缩放系数,确定该通道的贡献干扰量,包括:
针对每一通道,按照以下方式确定该通道的贡献干扰量:
确定所述排序队列中与该通道的缩放系数相邻的之前和/或之后预设数量个缩放系数,作为干扰缩放系数;
针对每一干扰缩放系数,根据所述排序队列中该干扰缩放系数相对该通道的缩放系数的距离,确定该干扰缩放系数对该通道贡献量的干扰权重;
根据各个干扰缩放系数以及各个干扰缩放系数对该通道贡献量的干扰权重,确定该通道的贡献干扰量。
5.根据权利要求2所述的方法,其特征在于,所述对各个通道的缩放系数进行平滑处理,包括:
针对每一通道,根据预设的剪枝率、全局缩放阈值和平滑系数,对该通道的缩放系数进行平滑处理,其中,所述平滑系数用于控制平滑处理后不同通道的缩放系数的差异化程度。
6.根据权利要求1所述的方法,其特征在于,所述利用样本数据对所述模拟剪枝模型重新训练,包括:
重置所述模拟剪枝模型中BN层的参数,并回调所述模拟剪枝模型中BN层的学习率;
利用样本数据对回调处理后的所述模拟剪枝模型重新训练。
7.根据权利要求1所述的方法,其特征在于,所述利用所获得的各个通道的缩放系数对所述待剪枝模型进行网络剪枝,包括:
根据所述待剪枝模型的通道数量和预设的剪枝率,确定所要剪除的通道的剪除数量;
根据所获得的各个通道的缩放系数,确定缩放系数最小的所述剪除数量个待剪除通道;
从所述待剪枝模型中剪除所确定的待剪除通道。
8.根据权利要求1所述的方法,其特征在于,所述待剪枝模型中的BN层为:利用预设的稀疏化算法进行稀疏化训练得到的。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述待剪枝模型为:对初始的网络模型放大处理后的模型。
10.一种网络剪枝装置,其特征在于,所述装置包括:
系数获得模块,用于获得待进行网络剪枝的待剪枝模型,通过所述待剪枝模型的批标准化BN层,获得所述待剪枝模型中各个通道的缩放系数;所述待剪枝模型为图像处理模型;
贡献量确定模块,用于利用各个通道的缩放系数确定反映各个通道重要性程度的贡献量;所述贡献量用于衡量各通道的输出值为所述待剪枝模型输出最终图像处理结果作出的贡献;
模拟剪枝模块,用于以各个通道的贡献量为权重,对各个通道的输出值进行加权处理,得到模拟剪枝模型;所述模拟剪枝模型为图像处理模型;
系数校正模块,用于利用样本数据对所述模拟剪枝模型重新训练,通过重新训练后模拟剪枝模型的BN层获得各个通道的缩放系数,利用重新训练前各个通道的贡献量,对所获得的各个通道的缩放系数进行校正,得到每一通道校正后的缩放系数;触发所述贡献量确定模块,直至新的模拟剪枝模型与上一次得到的模拟剪枝模型满足预设的相似条件;
网络剪枝模块,用于通过新的模拟剪枝模型的BN层获得各个通道的缩放系数,利用所获得的各个通道的缩放系数对所述待剪枝模型进行网络剪枝。
11.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-9任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-9任一所述的方法步骤。
CN202111112277.XA 2021-09-18 2021-09-18 深度神经网络模型的网络剪枝方法、装置、设备及介质 Active CN113837381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111112277.XA CN113837381B (zh) 2021-09-18 2021-09-18 深度神经网络模型的网络剪枝方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111112277.XA CN113837381B (zh) 2021-09-18 2021-09-18 深度神经网络模型的网络剪枝方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN113837381A CN113837381A (zh) 2021-12-24
CN113837381B true CN113837381B (zh) 2024-01-05

Family

ID=78969277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111112277.XA Active CN113837381B (zh) 2021-09-18 2021-09-18 深度神经网络模型的网络剪枝方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113837381B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110619385A (zh) * 2019-08-31 2019-12-27 电子科技大学 基于多级剪枝的结构化网络模型压缩加速方法
CN111062382A (zh) * 2019-10-30 2020-04-24 北京交通大学 用于目标检测网络的通道剪枝方法
WO2020148482A1 (en) * 2019-01-18 2020-07-23 Nokia Technologies Oy Apparatus and a method for neural network compression
CN111444760A (zh) * 2020-02-19 2020-07-24 天津大学 一种基于剪枝与知识蒸馏的交通标志检测与识别方法
CN112149803A (zh) * 2020-09-22 2020-12-29 安徽大学 一种适用于深度神经网络的通道剪枝方法
CN112183748A (zh) * 2020-09-30 2021-01-05 中国科学院自动化研究所 基于稀疏卷积神经网络的模型压缩方法、系统及相关设备
WO2021129570A1 (zh) * 2019-12-25 2021-07-01 神思电子技术股份有限公司 一种基于网络激活与稀疏化的网络裁剪优化方法
JP2021108039A (ja) * 2019-12-27 2021-07-29 Kddi株式会社 モデル圧縮装置及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11488019B2 (en) * 2018-06-03 2022-11-01 Kneron (Taiwan) Co., Ltd. Lossless model compression by batch normalization layer pruning in deep neural networks
US20210073643A1 (en) * 2019-09-05 2021-03-11 Vahid PARTOVI NIA Neural network pruning

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020148482A1 (en) * 2019-01-18 2020-07-23 Nokia Technologies Oy Apparatus and a method for neural network compression
CN110619385A (zh) * 2019-08-31 2019-12-27 电子科技大学 基于多级剪枝的结构化网络模型压缩加速方法
CN111062382A (zh) * 2019-10-30 2020-04-24 北京交通大学 用于目标检测网络的通道剪枝方法
WO2021129570A1 (zh) * 2019-12-25 2021-07-01 神思电子技术股份有限公司 一种基于网络激活与稀疏化的网络裁剪优化方法
JP2021108039A (ja) * 2019-12-27 2021-07-29 Kddi株式会社 モデル圧縮装置及びプログラム
CN111444760A (zh) * 2020-02-19 2020-07-24 天津大学 一种基于剪枝与知识蒸馏的交通标志检测与识别方法
CN112149803A (zh) * 2020-09-22 2020-12-29 安徽大学 一种适用于深度神经网络的通道剪枝方法
CN112183748A (zh) * 2020-09-30 2021-01-05 中国科学院自动化研究所 基于稀疏卷积神经网络的模型压缩方法、系统及相关设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Pruning with Compensation: Efficient Channel Pruning for Deep Convolutional Neural Networks;Zhouyang Xie 等;《https://arxiv.org/pdf/2108.13728v1.pdf》;全文 *
基于联合动态剪枝的深度神经网络压缩算法;张明明 等;《计算机应用》;第41卷(第6期);全文 *

Also Published As

Publication number Publication date
CN113837381A (zh) 2021-12-24

Similar Documents

Publication Publication Date Title
US11922321B2 (en) Methods and systems for selecting quantisation parameters for deep neural networks using back-propagation
WO2022052367A1 (zh) 一种用于遥感图像分类的神经网络优化方法、终端以及存储介质
CN110544155B (zh) 用户信用评分的获取方法、获取装置、服务器及存储介质
CN111080360B (zh) 行为预测方法、模型训练方法、装置、服务器及存储介质
WO2023035926A1 (zh) 基于自注意力机制从病理图片预测微卫星不稳定性的方法
CN110728349A (zh) 一种混合蝙蝠算法的优化方法以及多层感知器的优化方法
CN111401940A (zh) 特征预测方法、装置、电子设备及存储介质
CN109815988A (zh) 模型生成方法、分类方法、装置及计算机可读存储介质
CN111695624A (zh) 数据增强策略的更新方法、装置、设备及存储介质
EP3895080A1 (en) Regularization of recurrent machine-learned architectures
CN113837381B (zh) 深度神经网络模型的网络剪枝方法、装置、设备及介质
CN110880018B (zh) 一种卷积神经网络目标分类方法
US20210110531A1 (en) Physics-constrained network and training thereof
CN112199500A (zh) 针对评论的情感倾向识别方法、装置及电子设备
LaMotte et al. Inverse prediction for multivariate mixed models with standard software
CN109783769B (zh) 一种基于用户项目评分的矩阵分解方法和装置
CN115907192A (zh) 风电功率波动区间预测模型的生成方法、装置及电子设备
CN112836819B (zh) 一种神经网络模型生成方法及装置
CN114462320A (zh) 一种基于神经网络的结构网格生成方法及装置
CN114676820A (zh) 网络模型的调优方法、装置、电子设备及存储介质
CN113066486B (zh) 数据识别方法、装置、电子设备和计算机可读存储介质
CN112242157B (zh) 数据读电压的确定方法、参数确定方法、装置及设备
CN114648646B (zh) 一种图像分类方法及装置
CN114626527B (zh) 基于稀疏约束再训练的神经网络剪枝方法及装置
CN114358245A (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