一种神经网络剪枝方法及装置、存储介质与流程

文档序号:33244638发布日期:2023-02-17 22:47阅读:46来源:国知局
一种神经网络剪枝方法及装置、存储介质与流程

1.本技术涉及电子应用领域,尤其涉及一种神经网络剪枝方法及装置、存储介质。


背景技术:

2.以卷积神经网络(convolutional neural network,cnn)、深度神经网络(deep neural network,dnn)、循环神经网络(recurrent neural network,rnn)等为代表的深度学习算法在机器视觉、自然语言处理、自动驾驶、机器人、数据分析等多媒体领域中得到了广泛的应用,然而其复杂的结构导致即使在推理时也需占用大量的功耗和cpu、内存、存储空间等计算资源,严重限制了此类技术在功耗和资源受限的移动和嵌入式平台上的部署,因而在此之前必须对其进行一定的压缩。
3.目前可以从目标神经网络中系统性地剪去部分权重较低的参数(也就是对目标神经网络进行剪枝),在尽量少地损失精度的基础上,减少神经网络的参数量,来达成降低各项资源占用的益处。然而目前的对神经网络的剪枝方法还有待进一步提高识别权重较低的参数的准确性。


技术实现要素:

4.本技术实施例提供一种神经网络剪枝方法及装置、存储介质,有利于较为准确地剪去神经网络中权重较低的参数。
5.本技术的技术方案是这样实现的:
6.第一方面,本技术实施例提出一种神经网络剪枝方法,所述方法包括:
7.根据目标神经网络的门控矩阵得到生成器网络,所述生成器网络包括所述门控矩阵和所述目标神经网络;
8.利用多媒体数据集对所述生成器网络进行生成对抗训练,得到训练后的生成器网络,并根据训练后的生成器网络确定所述目标神经网络对应的稀疏神经网络。
9.第二方面,本技术实施例提出一种神经网络剪枝装置,所述装置包括:
10.创建单元,用于根据目标神经网络的门控矩阵得到生成器网络,所述生成器网络包括所述门控矩阵和所述目标神经网络;
11.训练单元,用于利用多媒体数据集对所述生成器网络进行生成对抗训练,得到训练后的生成器网络,并根据训练后的生成器网络确定所述目标神经网络对应的稀疏神经网络。
12.第三方面,本技术实施例提出一种神经网络剪枝装置,所述装置包括:处理器、存储器;所述处理器执行存储器存储的运行程序时实现如上述任一项所述的方法。
13.第四方面,本技术实施例提出一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一项所述的方法。
14.本技术实施例提供了一种神经网络剪枝方法及装置、存储介质,该方法包括:根据目标神经网络的门控矩阵得到生成器网络,生成器网络包括门控矩阵和目标神经网络;利
用多媒体数据集对生成器网络进行生成对抗训练,得到训练后的生成器网络,并根据训练后的生成器网络确定目标神经网络对应的稀疏神经网络。采用上述实现方案,基于目标神经网络的门控矩阵重建一个生成器网络,利用多媒体数据集对生成器网络进行生成对抗训练,训练生成器网络中表征权重重要性的门控矩阵。本技术提供的神经网络剪枝方法能够基于模型和数据,将剪枝建模为无监督学习问题,可以自动学习到当前场景下最优的剪枝策略,因此有利于提升稀疏神经网络的精度和表达能力,进而有利于较为准确地剪去神经网络中权重较低的参数。
附图说明
15.图1为一种神经网络剪枝方法的示意图一;
16.图2为一种神经网络剪枝方法的示意图二;
17.图3为本技术实施例提供的一种神经网络剪枝方法的流程图;
18.图4为本技术实施例提供的一种示例性的;
19.图5为本技术实施例提供的一种神经网络剪枝装置1的结构示意图一;
20.图6为本技术实施例提供的一种神经网络剪枝装置1的结构示意图二。
具体实施方式
21.应当理解,此处描述的具体实施例仅仅用以解释本技术。并不用于限定本技术。
22.准确识别并剪去神经网络中确实为冗余的权重,是剪枝技术的长期研究课题。所谓“剪枝”,具体指的是评估神经网络中的参数对神经网络的重要程度,并在尽量不影响网络性能的前提下,从神经网络中删除重要程度低的参数,以减少神经网络的参数量。例如,在神经网络中,卷积层到全连接层存在大量冗余参数,大多是神经元被激活后的输出值区域为0,即使将这些神经元剔除也能够表达出神经网络的模型特征,神经网络剪枝即可从神经网络中删除上述被激活后输出值区域为0的神经元。
23.本技术实施例中,在神经网络中,当门控矩阵中的元素值为0时,表征对应的神经元在神经网络被激活后的输出值区域为0,此时通过门控矩阵和神经网络中的权重矩阵的相乘操作,可以将该神经元从神经网络中被剔除,进而完成了神经网络剪枝的操作。
24.示例性的,至少存在以下两种神经网络剪枝方法,具体的;
25.第一种,在神经网络训练过程中采用基于梯度下降法的流程,逐步反向传播误差来更新权重,根据“梯度下降越不显著的权重越不活跃,重要性越低”的经验,剪去梯度值低于某阈值的权重(或权重组,例如权重条、cnn中的滤波器、特征图等,这样做可重复利用训练过程本身已经算出的梯度数值,从而降低剪枝操作相关的计算量。具体的,如图1所示,首先训练目标神经网络结构并存储梯度;识别并剪去梯度较小的权重;之后继续训练稀疏网络,训练完成后判断精度是否达标或者是否达到最大步数,若精度达标或者达到最大步数则结束,若精度未达标且未达到最大步数,则继续训练稀疏网络。
26.然而,随着神经网络的深度不断加大,不活跃的权重并非一定不重要。其次,对于结构化程度较高的dnn,因其相比早期浅层神经网络包含更高维度的权重矩阵,故根据数学推导,在剪枝时为确保准确性,不能直接使用梯度,而需进行逆矩阵、黑塞矩阵(hessian matrix)计算等大型矩阵运算,计算量过大,在当前以深度学习为主的趋势下显得不合时
宜。再次,对于已经完成训练且未存储其最终数个步骤之梯度数据的目标神经网络,通常仅有最终权重数据,该方法需要首先在已经收敛的目标神经网络上使用原始数据集和代码重启训练,以获取梯度信息。一方面,这些原始数据和代码本身可能难以获取,或需要手动复现,难以确保准确性和一致性,另一方面,在已经收敛的网络上训练容易导致过拟合,再去剪枝效果较差。
27.第二种,根据“权重数值越小越不重要”的经验法则,将整个网络中绝对值较小(例如低于某一阈值,或处于从大到小排序较后位置)的权重,或l0、l1和/或l2范数较小的权重组视为不重要,并剪去。这一类方法计算量较小,易于理解,开发难度较低。具体的,如图2所示,首先训练目标神经网络结构并存储梯度;识别并剪去范数较小的权重;之后继续训练稀疏网络,训练完成后判断精度是否达标或者是否达到最大步数,若精度达标或者达到最大步数则结束,若精度未达标且未达到最大步数,则继续训练稀疏网络。
28.然而,数值大小与重要性并不一定能画上等号,一种可能的情况是,有些权重虽然绝对值较大,但符号相反,实际上正负抵消后反而不重要。另外,阈值也是根据经验确定的。因此这一技术也不能保证总是剪掉最不重要的权重。
29.为解决上述问题,本技术实施例提供一种神经网络剪枝方法,如图3所示,该方法可以包括:
30.s101、根据目标神经网络的门控矩阵得到生成器网络,所述生成器网络包括所述门控矩阵和所述目标神经网络。
31.本技术实施例提出的一种神经网络剪枝方法支持用于影像、语音、自然语言处理、控制等任意领域、任意结构的神经网络剪枝场景。
32.本技术实施例中,目标神经网络可以为cnn、dnn、rnn等,具体的可以根据实际情况进行选择,本技术实施例不做具体的限定。
33.本技术实施例中,目标神经网络可以为参数为浮点数的模型,也可以是任意位宽的定点模型,如16bit、12bit、11bit、10bit、8bit、7bit、4bit、2bit等的定点模型、或者是整数模型乃至二值化模型。具体的可以根据实际情况进行选择,本技术实施例不做具体的限定。
34.需要说明的是,为了优化神经网络的剪枝策略,将剪枝策略的最优化建模为一个机器学习问题,即对目标神经网络中的每层权重,用另一片维度等于该权重的内存区域来存储一个用以指示是否减去各权重的门控矩阵,其中,门控矩阵中的元素值通常为介于0-1之间的一个浮点数,可代表对应权重的重要程度指数,如,0代表最不重要,1代表最重要。即目标神经网络中的每层对应一个用于表征该层权重重要性的矩阵,获取神经网络的门控矩阵即获取神经网络中的多层矩阵。
35.需要说明的是,目标神经网络为可以包括卷积层、池化层和/或全连接层等多层结构的神经网络,其中,目标神经网络中的每一层都对应实现该层功能的一组参数,其中的每一个参数对应一个权重,针对每一层的一组参数,对应设置与一组参数的一组权重对应的门控矩阵,其中,门控矩阵中的元素值用于表征对应权重的重要程度。
36.需要说明的是,门控矩阵中的元素所对应的权重数量与剪枝的粒度相关,如剪枝的粒度为一个权重,则门控矩阵中的一个元素对应一个权重;剪枝的粒度为结构化的一组权重,如权重条、滤波器、特征图等,则门控矩阵中的一个元素对应一组权重;剪枝的粒度为
多种不同粒度的权重,则门控矩阵中的一个元素对应一组权重,且不同组权重的权重数量可以不同。具体的门控矩阵中的元素可以由实际确定的剪枝的粒度进行决定,本技术实施例不做具体的限定。
37.在人工智能领域,针对剪枝的粒度为一个权重的情况统称为非结构化剪枝;针对剪枝的粒度为一组权重的情况统称为结构化剪枝;针对剪枝的粒度为多种不同粒度的权重的情况统称为异质剪枝。需要指出的是,该三种剪枝的粒度皆适用于本技术实施例所提供的神经网络剪枝方法。
38.本技术实施例中,可以基于门控矩阵得到生成器网络,示例性的,至少可以通过以下两种方式:
39.第一种,复制目标神经网络和目标神经网络的权重矩阵,得到神经网络副本;在神经网络副本中插入门控矩阵,得到生成器网络。
40.具体的,将神经网络和权重矩阵在内存中复制一份,得到神经网络副本;并在神经网络副本中插入可被训练的门控矩阵,也就是在神经网络副本的每层插入与该层对应的门控矩阵,及基于门控矩阵对神经网络的计算图进行必要的修改,得到生成器网络,其中,计算图对神经网络的计算逻辑进行了图形化表示,此时,该生成器网络中的每层输出均被乘以该层的门控矩阵。
41.第二种,通过将门控矩阵的数值调整为预设值,得到生成器网络。
42.具体的,在编程语言和/或深度学习(deep learning,dl)框架支持的前提下,动态指定各层门控矩阵的数值,得到生成器网络,如将门控矩阵的数值全部设置为1,则得到神经网络,将门控矩阵的数值设置为预设值,则得到生成器网络。此时不会在内存中同时存在神经网络和生成器网络的操作,进而能够节省训练过程中的内存。
43.需要说明的是,上述两种基于门控矩阵得到生成器网络的方法仅为本技术提出的两种方法,本技术不仅限于上述方法,具体的可以根据实际情况基于门控矩阵得到生成器网络,在此不再赘述。
44.本技术实施例中,在创建生成器网络时,生成器网络的初始权重(也就是权重矩阵中各矩阵元素的初始值)可以从目标神经网络中恢复得到、也可以是重新初始化的,具体的根据实际情况进行选择,本技术实施例不做具体的限定。
45.s102、利用多媒体数据集对生成器网络进行生成对抗训练,得到训练后的生成器网络,并根据训练后的生成器网络确定目标神经网络对应的稀疏神经网络。
46.在根据目标神经网络的门控矩阵得到生成器网络之后,还创建判别器网络,其中,可以基于生成器网络的网络结构,创建判别器网络。此时,判别器网络的网络结构与生成器网络的网络结构相同或者相似。
47.示例性的,如果生成器网络为u-net(u型网络结构)网络时,判别器网络也使用u-net网络结构。
48.可以理解的是,生成器网络和判别器网络结构相近,表达能力近似,两者也能使用类似的训练方法(学习率、优化器等),从而最大化地避免判别器网络和生成器网络之间由于表达能力差距(既包括由于结构不同而内生的初始差距,又包括随着训练—尤其是当判别器网络和生成器网络使用未必一致的训练策略时,可能逐渐扩大的能力差距)造成的诸多训练问题。
49.可以理解的是,考虑到不少深度神经网络可以理解为“编码器-解码器”的架构,较浅的层负责从输入样本中提取由低阶渐次升到高阶的特征,较深的层负责从特征中得出与网络学习任务本身更加相关的特征,例如分类网络中的具体物品类别、图像超分/降噪网络中的字符/复杂形状等输出组件特征;如果有两个结构相近而任务在某种程度上近似但未必完全相同的神经网络,例如图像降噪与超分场景;由于两者之间有很大可能具备一些共同检测的特征,因此可以从共享某些层(尤其浅层)的权重中获得更快的训练、更好的精度等益处,这也适用于使用结构相似的判别器网络和生成器网络的方案。特别是在生成对抗网络这种较难训练的算法中,权重的初始化尤为重要,而使用同一套权重去初始化判别器网络和生成器网络,可保证两个神经网络从同一起点开始学习,有利于训练稳定收敛。
50.本技术实施例中,若判别器网络的网络结构与生成器网络的网络结构相同或者相似,则判别器网络的初始权重与生成器网络的至少部分初始权重相同,即,判别器网络和生成器网络可以共享一部分初始权重或者全部初始权重。
51.在另一种可选的实施例中,还可以按照实际需要构造或简单或复杂、与生成器网络相似或者无关的判别器网络,甚至可以使用神经网络之外的其他机器学习网络模型,包括但不限于支持向量机模型、决策树模型、k-临近模型等,本技术实施例不做具体的限定。此时,通过不同的初始化策略生成判别器网络的初始权重与生成器网络的初始权重。
52.在得到判别器网络和生成器网络之后,就要循环的进行生成对抗学习(generative adversarial learning,gal)训练了。在每一次循环结束后判断是否满足循环退出条件,若满足循环退出条件时,则得到训练后的生成器网络,可以直接将训练后的生成器网络确定为稀疏神经网络,完成对神经网络进行剪枝的操作。
53.本技术实施例中的目标神经网络可以用于处理多媒体数据,因此可以使用多媒体数据集对生成器网络进行生成对抗学习训练。具体来说,可以循环将多媒体数据集中的多媒体数据分批次输入目标神经网络和生成器网络中,输出目标神经网络对应的第一样本和生成器网络对应的第二样本,即将多媒体数据输入目标神经网络中,输出第一样本;将多媒体数据输入生成器网络中,输出第二样本;利用判别器网络识别第一样本和第二样本,得到第一识别结果数据;基于第一识别结果数据、第一样本的类别和第二样本的类别对判别器网络进行训练,得到训练后的判别器网络;基于训练后的判别器网络和第二样本对生成器网络进行训练,直至满足循环退出条件时,得到训练后的生成器网络。
54.可选的,多媒体数据集可以包括:图像数据集、音频数据集、文本数据集、视频数据集中的至少一种,具体的根据目标神经网络对应的应用场景进行选择,本技术实施例不做具体的限定。
55.需要说明的是,第一样本为输入目标神经网络得到的真实样本,第一样本的类别为真实样本;第二样本为输入生成器网络得到的欺骗样本,第二样本的类别为欺骗样本。由于判别器网络在系统收敛时必然可以准确识别真实样本而无法识别欺骗样本,表现为对欺骗样本划分为真与假的概率均为50%,则第一识别结果数据可以由三部分组成,包括:将真实样本归类为真、将欺骗样本归类为假、以及将欺骗样本归类为真。能够避免第一识别结果数据的类型过于单一,进而避免判别器网络对训练过程中任一版本的生成器网络产生过拟合,影响生成器网络的训练。
56.需要说明的是,第一样本为目标神经网络输出的向量,第二样本为生成器网络输
出的向量;其中,输出向量可以为包含各类别置信度的softmax层输出向量,或者之前层的输出向量等,而不仅仅是代表最终分类的标量,具体的根据实际情况进行选择,本技术实施例不做具体的限定。
57.具体的,基于第一识别结果数据、第一样本的类别和第二样本的类别对判别器网络进行训练,得到训练后的判别器网络的过程包括:基于第一识别结果数据、第一样本的类别和第二样本的类别对判别器网络的权重进行训练,得到训练后的判别器网络。
58.需要说明的是,在对判别器网络进行训练过程中,判别器网络的损失函数除了错误率以外,也可以添加其他项,或者在训练过程中学习得到。
59.在一种可选的实施例中,基于训练后的判别器网络和第二样本对生成器网络进行训练,直至满足循环退出条件时,得到训练后的生成器网络的过程包括:基于训练后的判别器网络对第二样本进行识别,得到第二识别结果数据;基于第二识别结果数据训练生成器网络的门控矩阵,在满足循环退出条件时,将训练后的门控矩阵对应的生成器网络确定为训练后的生成器网络。
60.在本技术实施例中,可以只对生成器网络的门控矩阵进行训练,在完成对门控矩阵的训练之后,将训练后的门控矩阵对应的生成器网络确定为训练后的生成器网络。
61.在另一种可选的实施例中,基于训练后的判别器网络和第二样本对生成器网络进行训练,直至满足循环退出条件时,得到训练后的生成器网络的过程包括:基于训练后的判别器网络对第二样本进行识别,得到第二识别结果数据;基于第二识别结果数据训练生成器网络的门控矩阵和生成器网络的权重,在满足循环退出条件,得到训练后的生成器网络。
62.在本技术实施例中,可以同时对生成器网络的门控矩阵和权重进行训练,在完成对门控矩阵和权重的训练之后,直接得到训练后的生成器网络。
63.需要说明的是,在循环对判别器网络和生成器网络进行生成对抗训练的过程中,循环将多媒体数据集中的多媒体数据分批次输入目标神经网络和生成器网络中,其中,将一个批次的多媒体数据输入目标神经网络和生成器网络的过程称为一步,循环一次将整个多媒体数据集中的多媒体数据分批次全部输入目标神经网络和生成器网络的过程称为一代。
64.本技术实施例中,训练后的判别器网络对第二样本进行识别,得到第二识别结果数据,其中,第二识别结果数据可以为将欺骗样本识别为真和将欺骗样本识别为假,之后,基于第二识别结果数据训练生成器网络的门控矩阵(如有需要,还可同时训练生成器网络的权重)一步或者多步,或者直至训练到生成器网络收敛。
65.本技术实施例中,在基于第二识别结果数据对生成器网络进行训练过程中,生成器网络的损失函数lossg如公式(1)所示:
66.lossg=μ
×
loss
data
+loss
gan

×
loss
sparse
+decay
×
loss
reg
(1)
67.其中,loss
data
为对应的真实样本与欺骗样本之间的误差,loss
gan
为判别器网络的正确率(由于生成器网络的目标为最大化判别器网络的错误率),loss
sparse
为门控矩阵的l1正则项,loss
reg
为生成器网络中所有权重和偏置的l2正则项,μ、λ、decay为各项在整个损失函数中的相对权重。在损失函数中加入l1、l2正则项,能够使得门控矩阵中必要多的元素收敛为0。
68.需要说明的是,生成器网络的损失函数可以按需包括更多或者更少的项,如感知
损失、信噪比、其他色域下的色差等,或者在训练过程中训练中学习得到。
69.需要说明的是,生成器网络的权重可以与门控矩阵的更新同步或者分别进行,也可以使用相同或者不同的损失函数,具体的可以根据实际情况进行选择,本技术实施例不做具体的限定。
70.本技术实施例中,在每循环一次对判别器网络和生成器网络的生成对抗训练之后,就要判断是否满足循环退出条件,其中循环退出的条件为下任一种:循环次数达到预设次数阈值、生成器网络收敛;若满足上述任一种循环退出条件时,则根据训练后的生成器网络确定目标神经网络对应的稀疏神经网络;若不满足上述任一种循环退出条件时,则利用训练后的生成器网络和判别器网络进行下一轮的生成对抗训练过程,直至满足循环退出条件时,结束生成对抗训练过程。
71.在得到训练后的生成器网络之后,由于训练后的生成器网络中已包含门控矩阵与对应的层输出相乘的操作,可以直接将训练后的生成器网络确定为稀疏神经网络做前向计算,还可以确定训练后的生成器网络对应的训练后的门控矩阵;通过将训练后的门控矩阵和生成器网络的权重矩阵相乘、并从训练后的生成器网络中剔除训练后的门控矩阵,得到稀疏神经网络,其中,稀疏神经网络为在训练后的生成器网络中将训练后的门控矩阵和生成器网络的权重矩阵相乘、并剔除训练后的门控矩阵后得到的网络,此时可以节省训练后的生成器网络所占空间;甚至还可以对所述稀疏神经网络进行网络训练。具体的对训练后的生成器网络进行的后处理可以根据实际情况进行选择,本技术实施例不做具体的限定。
72.需要说明的是,训练后的门控矩阵和权重矩阵相乘,此时门控矩阵中元素值为0的矩阵元素对应的权重就等价于被置零而剪去了。可选的,对于被裁剪的权重,可以是简单置零,以普通的密集矩阵格式存储;在结构化剪枝的情况下,也可以完全删去被剪掉的权重组;在非结构化剪枝的情况下,也可以删去被剪掉的权重后,以稀疏格式进行压缩存储,并在前向运算时使用相应优化的稀疏算子。
73.需要说明的是,对所述稀疏神经网络进行网络训练的过程中,网络训练的损失函数为生成器网络的损失函数,其中,还可以重新选取或者添加更多子项,或者在训练过程中学习得到;或者为表征稀疏神经网络和预设神经网络之间误差的损失函数,其中预设神经网络可以为神经网络或者其他模型,稀疏神经网络和预设神经网络之间误差可由神经网络的输出层或者中间层算出。
74.示例性的,如图4所示,进行神经网络剪枝的步骤包括:
75.1、将目标神经网络结构和权重矩阵在内存中复制一份,得到神经网络副本;
76.2、在神经网络副本中插入可被训练的门控矩阵,并对计算图进行修改,使得每层的输出均被乘上该层的门控矩阵,得到生成器网络;
77.3、定义另一个神经网络作为判别器网络;
78.4、将训练数据集中的一批数据输入目标神经网络和生成器网络中,分别得到真实样本和欺骗样本;
79.5、将真实样本和欺骗样本输入判别器网络中,训练判别器网络;
80.6、利用训练好的判别器网络对欺骗样本进行识别,训练生成器网络的门控矩阵;
81.7、判断是否达到最大循环次数、或生成器网络和判别器网络均已收敛;
82.8、若达到最大循环次数、或生成器网络和判别器网络均已收敛,则对训练后的生
成器网络进行后处理;
83.9、若未达到最大循环次数、且生成器网络和判别器网络未收敛,则从训练数据集中确定下一批数据,并执行4。
84.可以理解的是,基于目标神经网络的门控矩阵重建一个生成器网络,利用多媒体数据集对生成器网络进行生成对抗训练,训练生成器网络中表征权重重要性的门控矩阵。本技术提供的神经网络剪枝方法能够基于模型和数据,将剪枝建模为无监督学习问题,可以自动学习到当前场景下最优的剪枝策略,因此有利于提升稀疏神经网络的精度和表达能力,进而有利于较为准确地剪去神经网络中权重较低的参数。
85.基于上述实施例,可以看出本技术实施例提出的一种神经网络剪枝方法相比较与现有技术而言,存在如下有益效果:
86.1、由于本技术中创建的生成器网络中包括门控矩阵,因此,门控矩阵可直接参与对生成器网络的生成对抗训练,可根据训练后的生成器网络直接得到稀疏神经网络,相较于现有技术而言无需单独对稀疏神经网络进行训练,简化了神经网络剪枝的步骤。
87.2、门控矩阵参与生成对抗训练,使得随着训练的进行,门控矩阵能够更加精确、灵活且稳定的表征目标神经网络中权重的重要程度,避免了现有技术中二值化、一次性的剪枝策略。
88.3、本技术是利用门控矩阵实现对目标神经网络的剪枝操作,该剪枝操作仅与表征权重重要性的门控矩阵相关,与目标神经网络的权重实现了解耦,便于生成器网络的训练和分析。
89.4、本技术实施例中的门控矩阵中的元素对应剪枝的最小单元,而剪枝的最小单元可以为单个权重,也可以为一组权重,更甚至可以结合多种不同的剪枝粒度,能够使得在多个粒度上同时进行异质剪枝,降低了因多次分别执行不同粒度的剪枝而造成的误差累积。
90.5、本技术通过根据目标神经网络的门控矩阵生成生成器网络,并对生成器网络进行生成对抗训练。使得得到的稀疏神经网络能够自动学习到对于当前场景下最优且在所有层上最大的剪枝策略,相较于现有的基于经验假设进行剪枝的策略,无需手动指定剪枝比例,提升了稀疏神经网络的精度和表达能力。
91.6、本技术中可以基于生成器网络的网络结构创建判别器网络,使得生成器网络的网络结构和判别器网络的网络结构相同或者相似,能够较好的控制生成对抗训练的进度和平衡性,使得网络收敛更加稳定,能够降低传统生成对抗训练中陷入局部最优的概率。
92.7、生成器网络的网络结构和判别器网络的网络结构相同或者相似,可以使得生成器网络和判别器网络共享全部或者部分权重,有利于生成对抗训练的稳定性,甚至可以进行协同训练,在降低训练的计算量的同时还可以提高稀疏神经网络的可解释性。
93.基于上述实施例,本技术实施例提供一种神经网络剪枝装置1。如图5所示,该装置1包括:
94.创建单元10,用于根据目标神经网络的门控矩阵得到生成器网络,所述生成器网络包括所述门控矩阵和所述目标神经网络;
95.训练单元11,用于利用多媒体数据集对所述生成器网络进行生成对抗训练,得到训练后的生成器网络,并根据训练后的生成器网络确定所述目标神经网络对应的稀疏神经网络。
96.可选的,所述装置还包括:输入单元和识别单元;
97.所述输入单元,用于循环将所述多媒体数据集中的多媒体数据分批次输入所述目标神经网络和所述生成器网络中,输出所述目标神经网络对应的第一样本和所述生成器网络对应的第二样本;
98.所述识别单元,用于利用判别器网络识别所述第一样本和所述第二样本,得到第一识别结果数据;
99.所述训练单元11,还用于基于所述第一识别结果数据、所述第一样本的类别和所述第二样本的类别对所述判别器网络进行训练,得到训练后的判别器网络;基于所述训练后的判别器网络和所述第二样本对所述生成器网络进行训练,直至满足循环退出条件时,得到训练后的生成器网络。
100.可选的,所述装置还包括:确定单元;
101.所述训练单元11,还用于基于所述第一识别结果数据、所述第一样本的类别和所述第二样本的类别对所述判别器网络的权重进行训练,得到训练后的判别器网络。
102.可选的,所述识别单元,还用于基于所述训练后的判别器网络对所述第二样本进行识别,得到第二识别结果数据;
103.所述训练单元11,还用于基于所述第二识别结果数据训练所述生成器网络的门控矩阵,在满足所述循环退出条件时,将训练后的门控矩阵对应的生成器网络确定为所述训练后的生成器网络。
104.可选的,所述识别单元,还用于基于所述训练后的判别器网络对所述第二样本进行识别,得到第二识别结果数据;
105.所述训练单元11,还用于基于所述第二识别结果数据训练所述生成器网络的门控矩阵和所述生成器网络的权重,在满足所述循环退出条件,得到所述训练后的生成器网络。
106.可选的,所述循环退出条件为以下任一种:循环次数达到预设次数阈值、所述生成器网络收敛。
107.可选的,所述装置还包括:复制单元和插入单元;
108.所述复制单元,用于复制所述目标神经网络和目标所述神经网络的权重矩阵,得到神经网络副本;所述权重矩阵用于表征所述目标神经网络中的一个元素或多个元素的权重;所述门控矩阵用于表征所述权重矩阵中一个或多个参数的重要程度指数;
109.所述插入单元,用于在所述神经网络副本中插入所述门控矩阵,得到所述生成器网络。
110.可选的,所述创建单元10,还用于通过将所述目标神经网络的门控矩阵的数值调整为预设值,得到所述生成器网络。
111.可选的,所述创建单元10,还用于创建判别器网络,所述判别器网络为基于所述生成器网络的网络结构生成的网络。
112.可选的,所述判别器网络的初始权重与所述生成器网络的至少部分初始权重相同,所述生成器网络的初始权重从所述神经网络中恢复得到或者初始化得到。
113.可选的,所述装置还包括:后处理单元;
114.所述后处理单元,用于确定所述训练后的生成器网络对应的训练后的门控矩阵;通过将所述训练后的门控矩阵和所述权重矩阵相乘、并剔除所述训练后的门控矩阵,得到
所述稀疏神经网络。
115.可选的,所述后处理单元,还用于对所述稀疏神经网络进行网络训练,其中,所述网络训练的损失函数为所述生成器网络的损失函数。
116.可选的,所述多媒体数据集包括:图像数据集、音频数据集、文本数据集、视频数据集中的至少一种。
117.本技术实施例提供的一种神经网络剪枝装置,根据目标神经网络的门控矩阵得到生成器网络,生成器网络包括门控矩阵和目标神经网络;利用多媒体数据集对生成器网络进行生成对抗训练,得到训练后的生成器网络,并根据训练后的生成器网络确定目标神经网络对应的稀疏神经网络。由此可见,本实施例提出的装置,基于目标神经网络的门控矩阵重建一个生成器网络,利用多媒体数据集对生成器网络进行生成对抗训练,训练生成器网络中表征权重重要性的门控矩阵。本技术提供的神经网络剪枝方法能够基于模型和数据,将剪枝建模为无监督学习问题,可以自动学习到当前场景下最优的剪枝策略,因此有利于提升稀疏神经网络的精度和表达能力,进而有利于较为准确地剪去神经网络中权重较低的参数。
118.图6为本技术实施例提供的一种神经网络剪枝装置1的组成结构示意图二,在实际应用中,基于上述实施例的同一公开构思下,如图6所示,本实施例的神经网络剪枝装置1包括:处理器12、存储器13及通信总线14。
119.在具体的实施例的过程中,上述创建单元10、训练单元11、输入单元、划分单元、确定单元、复制单元、插入单元和后处理单元可由位于神经网络剪枝装置1上的处理器12实现,上述处理器12可以为特定用途集成电路(asic,application specific integrated circuit)、数字信号处理器(dsp,digital signal processor)、数字信号处理图像处理装置(dspd,digital signal processing device)、可编程逻辑图像处理装置(pld,programmable logic device)、现场可编程门阵列(fpga,field programmable gate array)、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。
120.在本技术实施例中,上述通信总线14用于实现处理器12和存储器13之间的连接通信;上述处理器12执行存储器13中存储的运行程序时实现如下的神经网络剪枝方法:
121.根据目标神经网络的门控矩阵得到生成器网络,所述生成器网络包括所述门控矩阵和所述目标神经网络;利用多媒体数据集对所述生成器网络进行生成对抗训练,得到训练后的生成器网络,并根据训练后的生成器网络确定所述目标神经网络对应的稀疏神经网络。
122.进一步地,上述处理器12,还用于循环将所述多媒体数据集中的多媒体数据分批次输入所述目标神经网络和所述生成器网络中,输出所述目标神经网络对应的第一样本和所述生成器网络对应的第二样本;利用判别器网络识别所述第一样本和所述第二样本,得到第一识别结果数据;基于所述第一识别结果数据、所述第一样本的类别和所述第二样本的类别对所述判别器网络进行训练,得到训练后的判别器网络;基于所述训练后的判别器网络和所述第二样本对所述生成器网络进行训练,直至满足循环退出条件时,得到训练后的生成器网络。
123.进一步地,上述处理器12,还用于基于所述第一识别结果数据、所述第一样本的类
别和所述第二样本的类别对所述判别器网络的权重进行训练,得到训练后的判别器网络。
124.进一步地,上述处理器12,还用于基于所述训练后的判别器网络对所述第二样本进行识别,得到第二识别结果数据;基于所述第二识别结果数据训练所述生成器网络的门控矩阵,在满足所述循环退出条件时,将训练后的门控矩阵对应的生成器网络确定为所述训练后的生成器网络。
125.进一步地,上述处理器12,还用于基于所述训练后的判别器网络对所述第二样本进行识别,得到第二识别结果数据;基于所述第二识别结果数据训练所述生成器网络的门控矩阵和所述生成器网络的权重,在满足所述循环退出条件,得到所述训练后的生成器网络。
126.进一步地,所述循环退出条件为以下任一种:循环次数达到预设次数阈值、所述生成器网络收敛。
127.进一步地,上述处理器12,还用于复制所述目标神经网络和目标所述神经网络的权重矩阵,得到神经网络副本;所述权重矩阵用于表征所述目标神经网络中的一个元素或多个元素的权重;所述门控矩阵用于表征所述权重矩阵中一个或多个参数的重要程度指数;在所述神经网络副本中插入所述门控矩阵,得到所述生成器网络。
128.进一步地,上述处理器12,还用于通过将所述目标神经网络的门控矩阵的数值调整为预设值,得到所述生成器网络。
129.进一步地,上述处理器12,还用于创建判别器网络,所述判别器网络为基于所述生成器网络的网络结构生成的网络。
130.进一步地,所述判别器网络的初始权重与所述生成器网络的至少部分初始权重相同,所述生成器网络的初始权重从所述神经网络中恢复得到或者初始化得到。
131.进一步地,上述处理器12,还用于确定所述训练后的生成器网络对应的训练后的门控矩阵;通过将所述训练后的门控矩阵和所述生成器网络的权重矩阵相乘、并从所述训练后的生成器网络中剔除所述训练后的门控矩阵,得到所述稀疏神经网络;所述权重矩阵用于表征所述神经网络中的一个元素或多个元素的权重。
132.进一步地,上述处理器12,还用于对所述稀疏神经网络进行网络训练,其中,所述网络训练的损失函数为所述生成器网络的损失函数。
133.进一步地,所述多媒体数据集包括:图像数据集、音频数据集、文本数据集、视频数据集中的至少一种。
134.本技术实施例提供一种存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于装置中,该计算机程序实现如上述的神经网络剪枝方法。
135.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
136.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下
前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台图像显示设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
137.以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1