卷积神经网络压缩方法、装置及电子设备与流程

文档序号:29640069发布日期:2022-04-13 18:13阅读:111来源:国知局
卷积神经网络压缩方法、装置及电子设备与流程

1.本发明涉及卷积神经网络压缩技术领域,尤其是涉及一种卷积神经网络压缩方法、装置及电子设备。


背景技术:

2.目前,现有的卷积神经网络在实际应用中很大程度上受到高计算量的阻碍,需要采用不同的剪枝策略来减小模型规模,减少模型运行时的内存占用,同时在不影响精度的情况下减少计算操作的次数。模型剪枝通常是一个反复进行训练-剪枝-微调的迭代优化过程,虽然能够得到具有较高准确率的压缩模型,但该过程需要耗费大量时间,时间成本较高。


技术实现要素:

3.有鉴于此,本发明的目的在于提供一种卷积神经网络压缩方法、装置及电子设备,以在保证压缩后模型的准确性的同时提高模型压缩的效率。
4.第一方面,本发明实施例提供了一种卷积神经网络压缩方法,所述方法包括:获取目标应用场景的目标训练样本集;其中,所述目标训练样本集是基于所述目标应用场景对应的待压缩神经网络模型的初始训练样本集确定的;采用方差缩放方法初始化所述待压缩神经网络模型的权重,得到所述待压缩神经网络模型的初始权重向量;以预设稀疏度作为约束条件,确定所述初始权重向量对应的权重优化向量,并根据所述权重优化向量计算所述待压缩神经网络模型中所有连接的灵敏度;其中,所述灵敏度用于表征所述待压缩神经网络模型中各个网络层的连接的重要程度;
5.根据所述预设稀疏度和所述灵敏度对所述待压缩神经网络模型进行剪枝,得到稀疏神经网络模型;其中,所述稀疏神经网络模型的权重是根据所述预设稀疏度和所述灵敏度确定出来的;
6.使用所述目标训练样本集训练所述稀疏神经网络模型,直至得到训练完成的目标神经网络模型;其中,所述目标神经网络模型用于对所述目标应用场景对应的数据进行处理。
7.结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,获取目标样本集的步骤,包括:对所述初始训练样本集进行采样,得到所述目标样本集其中,d代表所述目标样本集,xi代表第i个样本,yi代表第i个样本对应的标签,i代表当前批次,n代表所述目标样本集的样本数量。
8.结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,所述方法还包括:将所述待压缩神经网络模型的剪枝定义为以下公式的约束优化问题:
9.10.s,t.w∈rm,c∈{0,1}m,||c||0≤k
11.其中,l(
·
)表示整体损失函数,l(
·
)表示部分损失函数,

表示哈达玛乘积,c表示所述权重优化向量,w表示所述初始权重向量,∥
·
∥0表示标准的l0范数,m表示所述待压缩神经网络模型的参数总数,{0,1}m表示元素只有0和1的m维向量,k表示所述预设稀疏度。
12.结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,以预设稀疏度作为约束条件,确定所述初始权重向量对应的权重优化向量,并根据所述权重优化向量计算所述待压缩神经网络模型中所有连接的灵敏度的步骤,包括:
13.对于所述待压缩神经网络模型中的每一个连接,采用以下公式计算所述整体损失函数关于所述权重优化向量的导数以近似表征移除连接对所述待压缩神经网络模型的损失的影响:
[0014][0015]
s.t.w∈rm,c∈{0,1}m,hc||0≤k
[0016]
其中,gj(w;d)表示连接j对应的整体损失函数关于权重优化向量的导数值,ej表示连接j的指示向量;
[0017]
根据计算得到的每一个连接对应的导数值,采用以下公式计算所述待压缩神经网络模型中每一个连接的灵敏度:
[0018][0019]
其中,sj表示连接j的灵敏度,|gj(w;d)|表示连接j对应的导数值的绝对值,n表示所述待压缩神经网络模型的连接数量。
[0020]
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,根据所述预设稀疏度和所述灵敏度对所述待压缩神经网络模型进行剪枝,得到稀疏神经网络模型的步骤,包括:按照所述灵敏度由大到小的顺序对所述待压缩神经网络模型中的所有连接进行排序,并保留排序结果中的前k个连接,得到第一稀疏神经网络模型;根据所述预设稀疏度和所述排序结果,对所述第一稀疏神经网络模型中各个网络层的连接进行加权处理,得到所述稀疏神经网络模型。
[0021]
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,根据所述预设稀疏度和所述排序结果,对所述第一稀疏神经网络模型中各个网络层的连接进行加权处理,得到所述稀疏神经网络模型的步骤,包括:
[0022]
采用如下公式计算所述前k个连接中的每一个连接对应的优化权重值:
[0023][0024]
其中,w
i’表示第i个连接的优化权重值;
[0025]
为所述前k个连接中的每一个连接对应分配所述优化权重值,得到所述稀疏神经网络模型。
[0026]
结合第一方面,本发明实施例提供了第一方面的第六种可能的实施方式,其中,使
用所述目标训练样本集训练所述稀疏神经网络模型,直至得到训练完成的目标神经网络模型的步骤,包括:将所述目标训练样本集中的所有样本输入所述稀疏神经网络模型;根据所述稀疏神经网络模型的预测结果和所述目标训练样本集中的所有样本对应的标签计算损失函数值,直至迭代次数超过预设次数或损失函数值小于预设值,停止训练,得到训练完成的目标神经网络模型。
[0027]
第二方面,本发明实施例还提供一种卷积神经网络压缩装置,所述装置包括:样本获取模块,用于获取目标应用场景的目标训练样本集;其中,所述目标训练样本集是基于所述目标应用场景对应的待压缩神经网络模型的初始训练样本集确定的;初始化模块,用于采用方差缩放方法初始化所述待压缩神经网络模型的权重,得到所述待压缩神经网络模型的初始权重向量;灵敏度计算模块,用于以预设稀疏度作为约束条件,确定所述初始权重向量对应的权重优化向量,并根据所述权重优化向量计算所述待压缩神经网络模型中所有连接的灵敏度;其中,所述灵敏度用于表征所述待压缩神经网络模型中各个网络层的连接的重要程度;剪枝模块,用于根据所述预设稀疏度和所述灵敏度对所述待压缩神经网络模型进行剪枝,得到稀疏神经网络模型;其中,所述稀疏神经网络模型的权重是根据所述预设稀疏度和所述灵敏度确定出来的;训练模块,用于使用所述目标训练样本集训练所述稀疏神经网络模型,直至得到训练完成的目标神经网络模型;其中,所述目标神经网络模型用于对所述目标应用场景对应的数据进行处理。
[0028]
第三方面,本发明实施例还提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现上述卷积神经网络压缩方法。
[0029]
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理设备运行时执上述卷积神经网络压缩方法的步骤。
[0030]
本发明实施例提供的卷积神经网络压缩方法、装置及电子设备,该方法包括:获取目标应用场景的目标训练样本集;采用方差缩放方法初始化待压缩神经网络模型的权重以得到待压缩神经网络模型的初始权重向量;以预设稀疏度作为约束条件,确定初始权重向量对应的权重优化向量并根据权重优化向量计算待压缩神经网络模型中所有连接的灵敏度;根据预设稀疏度和灵敏度对待压缩神经网络模型进行剪枝以得到稀疏神经网络模型;使用目标训练样本集训练稀疏神经网络模型,直至得到训练完成的目标神经网络模型。采用上述技术,在初始化神经网络模型的权重后,引入灵敏度作为评判连接重要程度的标准,从而在训练前根据灵敏度识别出待压缩神经网络模型中的冗余连接并根据所需的稀疏度水平对冗余连接进行剪枝,之后再采用标准模型训练流程对剪枝后的稀疏神经网络模型进行训练,该操作方式能够避免反复进行训练-剪枝-微调的迭代优化过程,进而在保证剪枝后的神经网络模型的性能的同时提高了神经网络模型的压缩效率。
[0031]
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
[0032]
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0033]
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0034]
图1为本发明实施例提供的一种卷积神经网络压缩方法的流程示意图;
[0035]
图2为本发明实施例提供的一种卷积神经网络压缩装置的结构示意图;
[0036]
图3为本发明实施例提供的另一种卷积神经网络压缩装置的结构示意图;
[0037]
图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
[0038]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合实施例对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0039]
目前,现有的卷积神经网络在实际应用中很大程度上受到高计算量的阻碍,需要采用不同的剪枝策略来减小模型规模,减少模型运行时的内存占用,同时在不影响精度的情况下减少计算操作的次数。模型剪枝通常是一个反复进行训练-剪枝-微调的迭代优化过程,虽然能够得到具有较高准确率的压缩模型,但该过程需要耗费大量时间,时间成本较高。
[0040]
基于此,本发明实施提供的一种卷积神经网络压缩方法、装置及电子设备,可以在保证压缩后模型的准确性的同时提高模型压缩的效率。
[0041]
为便于对本实施例进行理解,首先对本发明实施例所公开的一种卷积神经网络压缩方法进行详细介绍,参见图1所示的一种卷积神经网络压缩方法的流程示意图,该方法可以包括以下步骤:
[0042]
步骤s102,获取目标应用场景的目标训练样本集;其中,目标训练样本集是基于目标应用场景对应的待压缩神经网络模型的初始训练样本集确定的。
[0043]
上述目标应用场景主要包括目标识别(如人脸识别、指纹识别)、目标追踪(如车辆追踪)等需要使用神经网络模型完成相应的任务的应用场景,基于此,上述待压缩神经网络模型可根据目标应用场景自行选择,例如,上述待压缩神经网络模型可以采用r-cnn模型、faster-rcnn模型、yolo模型等,对此并不进行限定。
[0044]
在实际应用过程中,为了便于操作,可根据先前训练待压缩神经网络模型所使用的训练样本集(即上述初始训练样本集)确定上述目标训练样本集。考虑到模型计算能力、模型参数量、模型处理任务的时效性等因素,上述步骤s102具体可采用以下两种操作方式之一:(1)直接将上述初始训练样本集确定为上述目标训练样本集;(2)对上述初始训练样本集进行采样,并将采样得到的样本所组成的集合确定为上述目标训练样本集。
[0045]
具体地,对于待压缩神经网络模型为轻量级模型(如yolov5s等)的情形,在模型计算能力允许的情况下,可以直接选取整个coco128样本集(包含128张图片)作为上述目标训练样本集;还可以对voc2007样本集(包含9963张图片)进行采样并将采样得到的小批量样
本集确定为上述目标训练样本集。此外,考虑到模型训练的准确性,在对上述初始训练样本集进行采样时,可采用均匀采样的方式,进而确保采样得到的小批量样本集的类别分布与初始训练样本集的类别分布保持一致,以便剪枝后的神经网络模型可以学习到更全面的特征。
[0046]
作为一个示例,上述步骤s102具体可采用以下操作方式:
[0047]
对初始训练样本集进行采样,得到目标样本集其中,d代表目标样本集,xi代表第i个样本,yi代表第i个样本对应的标签,i代表当前批次,n代表目标样本集的样本数量。
[0048]
步骤s104,采用方差缩放方法初始化待压缩神经网络模型的权重,得到待压缩神经网络模型的初始权重向量。
[0049]
由于神经网络模型通常具有多个神经元,为了避免神经元输出过大而导致梯度爆炸或消失,需要尽量使待压缩神经网络模型中每个神经元的输入方差和输出方差保持一致,基于此,可采用方差缩放方法初始化待压缩神经网络模型的权重。方差缩放方法具体可以根据实际需要使用xavier初始化、he初始化等方法,对此并不进行限定。经过上述步骤s104后,会使整个待压缩神经网络模型中每一个神经元的输入方差和输出方差保持不一致,进而确保待压缩神经网络模型在初始化时的鲁棒性。
[0050]
步骤s106,以预设稀疏度作为约束条件,确定初始权重向量对应的权重优化向量,并根据权重优化向量计算待压缩神经网络模型中所有连接的灵敏度;其中,灵敏度用于表征待压缩神经网络模型中各个网络层的连接的重要程度。
[0051]
首先预设好期望的稀疏度(即上述预设稀疏度)k,k指的是对待压缩神经网络模型进行剪枝后得到的模型中保持的k个权重(也即权重矩阵中非零元素的个数)。对于目标样本集来说,待压缩神经网络模型的参数总数为m,待压缩神经网络模型的初始权重向量为w,引入一个元素为0或1的权重优化向量c(也可将其视为一个指示变量)来表征w中各个元素对应的连接是否连通,c和w为同行同列的矩阵;用c中的元素1代表w中相应位置的元素对应的连接处于连通状态(即未被修剪),用c中的元素0代表w中相应位置的元素对应的连接处于断开状态(即被修剪)。
[0052]
据此可将上述待压缩神经网络模型的剪枝定义为以下公式(1)的约束优化问题:
[0053][0054]
s,t.w∈rm,c∈{0,1}m,||c||0≤k
[0055]
其中,l(
·
)表示整体损失函数,l(
·
)表示部分损失函数,

表示哈达玛乘积,c表示所述权重优化向量,w表示所述初始权重向量,∥
·
∥0表示标准的l0范数,m表示所述待压缩神经网络模型的参数总数,{0,1}m表示元素只有0和1的m维向量,k表示上述预设稀疏度(也即期望的稀疏度)。
[0056]
在上述公式(1)中,可根据实际需要设置c中的元素为0或1,进而通过哈达玛乘积运算对w中对应位置的元素(也即神经网络中的权重值)进行处理,达到权重稀疏化的目的。例如,神经网络模型只有一层,c=[0,0,1,0,1],w=[0.13,0.98,0.56,0.42,1.23],则c

w=[0,0,0.56,0,1.23]。
[0057]
为了简化描述,下文中所提及的“损失函数”均指的是上述整体损失函数l(
·
)。
[0058]
对于连接j来说,可定义c中与连接j对应的元素为cj,cj=1表示网络中的连接是活动的,cj=0表示网络中的连接已经被修剪,为了衡量连接j对待压缩模型损失的影响大小,可以在保持其他参数不变的情况下,采用以下公式(2)计算待压缩模型在cj=1时的损失和在cj=0时的损失之差:
[0059]
δlj(w;d)=l(1

w;d)-l((1-ej)

w;d)
ꢀꢀꢀ
(2)
[0060]
其中,1为一个元素全为1的m维向量,ej表示连接j的指示向量,ej为一个只有索引j位置处的元素为1、其余位置处的元素为0的m维向量;
[0061]
上述公式(2)中,1

w可指示待压缩神经网络模型处于全连接的状态,(1-ej)

w可指示待压缩神经网络模型处于连接j被剪枝的状态,因而上述公式(2)中的δlj(w;d)指示了移除连接j对待压缩神经网络模型产生的影响。
[0062]
在实际应用过程中,考虑到待压缩神经网络模型需要对输入其中的样本进行m+1次的前向传播,因而按照上述公式(2)对待压缩神经网络模型中的每个连接均进行相应的计算所涉及的计算量十分庞大。此外,由于c是可用二进制进行表示的元素只有0和1的m维向量,因而损失函数l对于c是不可微的。基于此,为了简化计算以提高模型压缩整个过程的效率,考虑到δlj指示了待压缩神经网络模型在cj=1时的损失和在cj=0时的损失之差,当δlj无穷小时,可以使用损失函数l对于权重优化向量cj的导数值gj(w;d)来代替δlj以近似表征移除连接j对待压缩神经网络模型的损失的影响,进而将上述公式(2)优化成以下公式(3):
[0063][0064]s·
t.w∈rm,c∈{0,1}m,||c||0≤k
[0065]
其中,gj(w;d)表示连接j对应的损失函数关于权重优化向量的导数值,ej表示连接j的指示向量;
[0066]
δlj表示cj从1变为0所引起的待压缩神经网络模型的损失变化,可以反映连接j的重要性,为了便于前向传播计算,δlj可以进一步等价于损失函数l关于cj的导数值。根据导数的定义,导数公式为在上述公式(3)中,δlj表示了损失函数在c从1-δ变化到1的变化率,c变化为c-δej。
[0067]
基于上述公式(3),上述步骤s106具体可以采用以下操作方式:
[0068]
步骤11,对于上述待压缩神经网络模型中的每一个连接,采用以下公式(3)对应的简化公式(3.1)计算损失函数关于权重优化向量的导数以近似表征移除连接对待压缩神经网络模型的损失的影响:
[0069]
[0070]
s.t.w∈rm,c∈{0,1}m,||c||0≤k
[0071]
其中,gj(w;d)表示连接j对应的损失函数关于权重优化向量的导数值,ej表示连接j的指示向量。
[0072]
步骤12,根据计算得到的每一个连接对应的导数值,采用以下公式(4)计算待压缩神经网络模型中每一个连接的灵敏度(也可称为初始灵敏度):
[0073][0074]
其中,sj表示连接j的灵敏度,|gj(w;d)|表示连接j对应的导数值的绝对值,n表示所述待压缩神经网络模型的连接数量。
[0075]
经过上述步骤12,可将上述灵敏度的大小作为显著性的标准,即:连接的灵敏度越大,在本质上意味着该连接对待压缩神经网络模型的损失产生的正影响或负影响越大。基于此,在对待压缩神经网络模型进行剪枝时,可将灵敏度相对较大的连接(也即重要连接)保留而将灵敏度相对较小的连接(也即冗余连接)移除。
[0076]
步骤s108,根据预设稀疏度和灵敏度对待压缩神经网络模型进行剪枝,得到稀疏神经网络模型;其中,稀疏神经网络模型的权重是根据预设稀疏度和灵敏度确定出来的。
[0077]
为了便于操作,上述步骤s108具体可以采用以下操作方式:
[0078]
步骤21,按照所述灵敏度由大到小的顺序对所述待压缩神经网络模型中的所有连接进行排序,并保留排序结果中的前k个连接,得到第一稀疏神经网络模型。
[0079]
步骤22,根据所述预设稀疏度和所述排序结果,对所述第一稀疏神经网络模型中各个网络层的连接进行加权处理,得到所述稀疏神经网络模型。
[0080]
具体地,对于上述前k个连接依次赋予[0,1]范围内的权重值。具体可采用如下公式计算上述前k个连接中的每一个连接对应的优化权重值:
[0081][0082]
其中,w
i’表示第i个连接的优化权重值。
[0083]
步骤23,为上述前k个连接中的每一个连接对应分配上述优化权重值,得到所述稀疏神经网络模型。
[0084]
经过上述步骤21至步骤23,上述稀疏神经网络模型中相对重要的连接被激励,上述稀疏神经网络模型中不太重要的连接被抑制,进而放大稀疏神经网络模型中各个连接之间的权重差异,以便根据优化权重值的大小将不同连接更好的区分开来。
[0085]
步骤s110,使用目标训练样本集训练稀疏神经网络模型,直至得到训练完成的目标神经网络模型;其中,目标神经网络模型用于对目标应用场景对应的数据进行处理。
[0086]
作为一种可能的实施方式,可将上述目标训练样本集中的所有样本输入上述稀疏神经网络模型;根据上述稀疏神经网络模型的预测结果和上述目标训练样本集中的所有样本对应的标签计算损失函数值,直至迭代次数超过预设次数或损失函数值小于预设值,停止训练,得到训练完成的目标神经网络模型。
[0087]
本发明实施例提供的卷积神经网络压缩方法,其核心思想在于:引入灵敏度作为显著性度量,进而将灵敏度较低的权重或神经元确定为移除后性能降低最小的连接,并将灵敏度较高的连接移除,之后对保留下来的连接进行加权处理以放大不同连接之间的差
异。由于灵敏度的计算方式能够避免显著性度量对损失价值的依赖,因而本发明消除了神经网络模型预先训练的必要性。
[0088]
本发明实施例提供的卷积神经网络压缩方法,该方法包括:获取目标应用场景的目标训练样本集;采用方差缩放方法初始化待压缩神经网络模型的权重以得到待压缩神经网络模型的初始权重向量;以预设稀疏度作为约束条件,确定初始权重向量对应的权重优化向量并根据权重优化向量计算待压缩神经网络模型中所有连接的灵敏度;根据预设稀疏度和灵敏度对待压缩神经网络模型进行剪枝以得到稀疏神经网络模型;使用目标训练样本集训练稀疏神经网络模型,直至得到训练完成的目标神经网络模型。采用上述技术,在初始化神经网络模型的权重后,引入灵敏度作为评判连接重要程度的标准,从而在训练前根据灵敏度识别出待压缩神经网络模型中的冗余连接并根据所需的稀疏度水平对冗余连接进行剪枝,之后再采用标准模型训练流程对剪枝后的稀疏神经网络模型进行训练,该操作方式能够避免反复进行训练-剪枝-微调的迭代优化过程,进而在保证剪枝后的神经网络模型的性能的同时提高了神经网络模型的压缩效率。
[0089]
基于上述卷积神经网络压缩方法,本发明实施例还提供了一种卷积神经网络压缩装置,参见图2所示,该装置包括:
[0090]
样本获取模块21,用于获取目标应用场景的目标训练样本集;其中,所述目标训练样本集是基于所述目标应用场景对应的待压缩神经网络模型的初始训练样本集确定的。
[0091]
初始化模块22,用于采用方差缩放方法初始化所述待压缩神经网络模型的权重,得到所述待压缩神经网络模型的初始权重向量。
[0092]
灵敏度计算模块23,用于以预设稀疏度作为约束条件,确定所述初始权重向量对应的权重优化向量,并根据所述权重优化向量计算所述待压缩神经网络模型中所有连接的灵敏度;其中,所述灵敏度用于表征所述待压缩神经网络模型中各个网络层的连接的重要程度。
[0093]
剪枝模块24,用于根据所述预设稀疏度和所述灵敏度对所述待压缩神经网络模型进行剪枝,得到稀疏神经网络模型;其中,所述稀疏神经网络模型的权重是根据所述预设稀疏度和所述灵敏度确定出来的。
[0094]
训练模块25,用于使用所述目标训练样本集训练所述稀疏神经网络模型,直至得到训练完成的目标神经网络模型;其中,所述目标神经网络模型用于对所述目标应用场景对应的数据进行处理。
[0095]
本发明实施例提供的卷积神经网络压缩装置,在初始化神经网络模型的权重后,引入灵敏度作为评判连接重要程度的标准,从而在训练前根据灵敏度识别出待压缩神经网络模型中的冗余连接并根据所需的稀疏度水平对冗余连接进行剪枝,之后再采用标准模型训练流程对剪枝后的稀疏神经网络模型进行训练,该操作方式能够避免反复进行训练-剪枝-微调的迭代优化过程,进而在保证剪枝后的神经网络模型的性能的同时提高了神经网络模型的压缩效率。
[0096]
基于上述卷积神经网络压缩装置,本发明实施例还提供了另一种卷积神经网络压缩装置,参见图3所示,该装置还包括:
[0097]
定义模块26,用于将所述待压缩神经网络模型的剪枝定义为以下公式的约束优化问题:
[0098][0099]
s.t.w∈rm,c∈{0,1}m,||c||0≤k
[0100]
其中,l(
·
)表示整体损失函数,l(
·
)表示部分损失函数,

表示哈达玛乘积,c表示所述权重优化向量,w表示所述初始权重向量,∥
·
∥0表示标准的l0范数,m表示所述待压缩神经网络模型的参数总数,{0,1}m表示元素只有0和1的m维向量,k表示所述预设稀疏度。
[0101]
上述样本获取模块21,还用于:
[0102]
对所述初始训练样本集进行采样,得到所述目标样本集其中,d代表所述目标样本集,xi代表第i个样本,yi代表第i个样本对应的标签,i代表当前批次,n代表所述目标样本集的样本数量。
[0103]
上述灵敏度计算模块23,还用于:
[0104]
对于所述待压缩神经网络模型中的每一个连接,采用以下公式计算所述整体损失函数关于所述权重优化向量的导数以近似表征移除连接对所述待压缩神经网络模型的损失的影响:
[0105][0106]
s.t.w∈rm,c∈{0,1}m,||c||0≤k
[0107]
其中,gj(w;d)表示连接j对应的整体损失函数关于权重优化向量在的导数值,ej表示连接j的指示向量;
[0108]
根据计算得到的每一个连接对应的导数值,采用以下公式计算所述待压缩神经网络模型中每一个连接的灵敏度:
[0109][0110]
其中,sj表示连接j的灵敏度,|gj(w;d)|表示连接j对应的导数值的绝对值,n表示所述待压缩神经网络模型的连接数量。
[0111]
上述剪枝模块24,还用于:按照所述灵敏度由大到小的顺序对所述待压缩神经网络模型中的所有连接进行排序,并保留排序结果中的前k个连接,得到第一稀疏神经网络模型;根据所述预设稀疏度和所述排序结果,对所述第一稀疏神经网络模型中各个网络层的连接进行加权处理,得到所述稀疏神经网络模型。
[0112]
上述剪枝模块24,还用于:
[0113]
采用如下公式计算所述前k个连接中的每一个连接对应的优化权重值:
[0114][0115]
其中,w
i’表示第i个连接的优化权重值;
[0116]
为所述前k个连接中的每一个连接对应分配所述优化权重值,得到所述稀疏神经网络模型。
[0117]
上述训练模块25,还用于:将所述目标训练样本集中的所有样本输入所述稀疏神经网络模型;根据所述稀疏神经网络模型的预测结果和所述目标训练样本集中的所有样本对应的标签计算损失函数值,直至迭代次数超过预设次数或损失函数值小于预设值,停止训练,得到训练完成的目标神经网络模型。
[0118]
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
[0119]
本发明实施例提供了一种电子设备,参见图4所示,该电子设备100包括:处理器40,存储器41,总线42和通信接口43,所述处理器40、通信接口43和存储器41通过总线42连接;处理器40用于执行存储器41中存储的可执行模块,例如计算机程序。
[0120]
其中,存储器41可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
[0121]
总线42可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0122]
其中,存储器41用于存储程序,所述处理器40在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器40中,或者由处理器40实现。
[0123]
处理器40可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述卷积神经网络压缩方法的各步骤可以通过处理器40中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器40可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的卷积神经网络压缩方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器41,处理器40读取存储器41中的信息,结合其硬件完成上述卷积神经网络压缩方法的步骤。
[0124]
本发明实施例所提供的卷积神经网络压缩方法、装置及电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的卷积神经网络压缩方法,具体实现可参见前述方法实施例,在此不再赘述。
[0125]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0126]
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1