CN109766995A - 深度神经网络的压缩方法与装置 - Google Patents
深度神经网络的压缩方法与装置 Download PDFInfo
- Publication number
- CN109766995A CN109766995A CN201811619878.8A CN201811619878A CN109766995A CN 109766995 A CN109766995 A CN 109766995A CN 201811619878 A CN201811619878 A CN 201811619878A CN 109766995 A CN109766995 A CN 109766995A
- Authority
- CN
- China
- Prior art keywords
- tensor
- target
- neural network
- original
- obtains
- 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.)
- Withdrawn
Links
Landscapes
- Image Analysis (AREA)
Abstract
本发明涉及一种深度神经网络的压缩方法与装置,方法包括:获取原始深度神经网络;确定原始深度神经网络的类型;若类型为循环神经网络,合并该神经网络的长短期记忆单元的参数,获得合并参数;采用张量火车分解算法,压缩合并参数,得到目标参数;将合并参数替换为目标参数,得到第一目标深度神经网络;若类型为卷积神经网络,采用张量火车分解算法,压缩该神经网络中原始卷积核与原始全连接层,得到目标卷积核与目标全连接层;将原始卷积核与原始全连接层替换为目标卷积核与目标全连接层,得到第二目标深度神经网络。采用张量火车分解算法压缩深度神经网络,相较于其他分解方法,稳定性高,分解效果好,保证了深度神经网络压缩的稳定性与有效性。
Description
技术领域
本发明涉及深度神经网络技术领域,具体涉及一种深度神经网络的压缩方 法与装置。
背景技术
现如今,互联网高速发展,大数据时代到来,深度神经网络也随之迅猛发 展。深度神经网络目前广泛地应用在人工智能的诸多领域中,如自然语言处理、 计算机视觉、自动驾驶等,并且表现出了极佳的准确率。然而现有的深度神经 网络具有很高的计算复杂度和内存开销,从而阻碍了其在低存储嵌入式设备上 的部署。因此,对深度神经网络进行分解压缩,从而降低其计算复杂度和参数 存储成为必然需求。
现有技术中的深度神经网络的压缩方法有CP分解方法和Tucker分解方法 等,CP分解方法的稳定性较低,而Tucker分解方法对于高维张量,压缩效果 有限,因此,现有技术中的深度神经网络压缩方法稳定性与有效性较低。
发明内容
有鉴于此,本发明的目的在于提供一种深度神经网络压缩的方法与装置, 以解决现有技术中深度神经网络压缩方法稳定性与有效性较低的问题。
为实现以上目的,本发明采用如下技术方案:
一种深度神经网络的压缩方法,包括:
获取原始深度神经网络;
确定所述原始深度神经网络的类型;
若所述原始深度神经网络的类型为循环神经网络,将所述原始深度神经网 络的长短期记忆LSTM单元的参数合并,获得合并参数;
采用张量火车分解算法,对所述合并参数进行压缩,得到目标参数;
将所述合并参数替换为所述目标参数,得到第一目标深度神经网络;
若所述原始深度神经网络的类型为卷积神经网络,采用张量火车分解算法, 对所述原始深度神经网络中原始卷积核与原始全连接层进行压缩,得到目标卷 积核与目标全连接层;
将所述原始卷积核替换为所述目标卷积核,将所述原始全连接层替换为所 述目标全连接层,得到第二目标深度神经网络。
进一步地,上述所述的方法中,所述采用张量火车分解算法,对所述合并 参数进行压缩,得到目标参数,包括:
采用张量火车分解算法,对所述合并参数进行张量火车层TTL运算,得到 所述目标参数。
进一步地,上述所述的方法中,所述采用张量火车分解算法,对所述原始 深度神经网络中原始卷积核与原始全连接层进行压缩,得到目标卷积核与目标 全连接层,包括:
对所述原始卷积核进行形状变换,得到所述原始卷积核对应的卷积矩阵;
采用张量火车分解算法,对所述卷积矩阵进行张量火车卷积层TT-Conv Layer运算,得到所述目标卷积核;
采用张量火车分解算法,对所述原始全连接层的权重矩阵进行TTL运算, 得到所述目标全连接层。
进一步地,上述所述的方法中,所述TTL运算过程包括:
对需要分解的矩阵进行因式分解,得到第一张量的形状;
所述矩阵中的索引与所述第一张量中的索引相互映射,得到第一目标张量;
对需要分解的第一向量进行因式分解,得到第二张量的形状;
所述第一向量中的索引与所述第二张量中的索引相互映射,得到第二目标 张量;
根据设定的矩阵-向量的乘法公式、第一目标张量和第二目标张量,得到 TTL运算公式。
进一步地,上述所述的方法中,所述设定的矩阵-向量的乘法公式为 y=Wx+b,其中,W为矩阵,x为向量,b为偏移向量,y为输出矩阵。
进一步地,上述所述的方法中,所述根据设定的矩阵-向量的乘法公式、第 一目标张量和第二目标张量,得到TTL运算公式之前,包括:
对所述偏移向量进行因式分解,得到第三张量的形状;
所述偏移向量中的索引与所述第三张量中的索引相互映射,得到第三目标 张量。
进一步地,上述所述的方法中,所述TT-Conv Layer运算过程包括:
对所述卷积矩阵进行因式分解,得到第四张量的形状;
所述卷积矩阵中的索引与所述第四张量中的索引相互映射,得到第四目标 张量;
对需要分解的第二向量进行因式分解,得到第五张量的形状;
所述第二向量中的索引与所述第五张量中的索引相互映射,得到第五目标 张量;
将所述第五目标张量扩展为与所述第四目标张量相同的维度,得到第六目 标张量;
根据设定的矩阵乘法公式、第四目标张量和第六目标张量,得到TT-Conv Layer运算公式。
本发明还提供一种深度神经网络的压缩装置,其特征在于,所述装置包括: 获取模块、确定模块、合并模块、压缩模块和替换模块;
所述获取模块,用于获取原始深度神经网络;
所述确定模块,用于确定所述原始深度神经网络的类型;
所述合并模块,用于若所述原始深度神经网络为循环神经网络,将所述原 始深度神经网络的长短期记忆单元的参数合并,获得合并参数;
所述压缩模块,用于采用张量火车分解算法,对所述合并参数进行压缩, 得到目标参数;
所述替换模块,用于将所述合并参数替换为所述目标参数,得到第一目标 深度神经网络;
所述压缩模块,还用于若所述原始深度神经网络为卷积神经网络,采用张 量火车分解算法,对所述原始深度神经网络中原始卷积核与原始全连接层进行 压缩,得到目标卷积核与目标全连接层;
所述替换模块,还用于将所述原始卷积核替换为所述目标卷积核,将所述 原始全连接层替换为所述目标全连接层,得到第二目标深度神经网络。
进一步地,上述所述的装置中,所述压缩模块还用于:
采用张量火车分解算法,对所述合并参数进行TTL运算,得到所述目标参 数。
进一步地,上述所述的装置中,所述压缩模块还用于:
对所述原始卷积核进行形状变换,得到所述原始卷积核对应的卷积矩阵;
采用张量火车分解算法,对所述卷积矩阵进行TT-Conv Layer运算,得到 所述目标卷积核;
采用张量火车分解算法,对所述原始全连接层的权重矩阵进行TTL运算, 得到所述目标全连接层。
本发明的深度神经网络的压缩方法与装置,首先获取原始深度神经网络, 确定原始深度神经网络的类型,如果原始深度神经网络的类型为循环神经网络, 则将该神经网络中长短期记忆单元的参数合并,得到合并参数;再采用张量火 车分解算法,对合并参数进行压缩,得到目标参数;最后将合并参数替换为目 标参数,得到第一深度神经网络;如果原始深度神经网络的类型为卷积神经网 络,采用张量火车分解算法,对该神经网络中的原始卷积核与原始全连接层进 行压缩,得出目标卷积核与目标全连接层,最后将原始卷积核替换为目标卷积 核,原始全连接层替换为目标全连接层,得到第二深度神经网络。这样,本技术方案采用张量火车分解算法对深度神经网络进行压缩,降低了计算复杂度, 并且张量火车分解算法相较于其他分解方法,稳定性较高,分解效果较好,从 而保证了深度神经网络压缩的稳定性与有效性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的, 并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的深度神经网络的压缩方法实施例一的流程图;
图2是本发明的深度神经网络的压缩方法实施例二的流程图;
图3是本发明的深度神经网络的压缩装置实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方 案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不 是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创 造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
图1是本发明的深度神经网络的压缩方法实施例一的流程图,如图1所示, 本实施例的深度神经网络的压缩方法具体可以包括如下步骤:
S101、获取原始深度神经网络;
神经网络分为3层,分别为输入层、中间层、输出层,其中,中间层又叫 隐藏层。每一层分别有多个神经元、层与层之间的神经元相互连接,层内的神 经元不相互连接。当网络层数超过三层时,即称作深层神经网络,也就是所谓 的深度学习。深度网络一个重要的特性在于,层数越深,就越能够学习数据中 的高级特征。本实施例的深度神经网络可以选取分别适用于MNIST、CIFAR-10、 ImageNet三个数据集的Le网络、Cifar网络、Alex网络。本实施例中,首先需 要获取原始深度神经网络。
S102、确定原始深度神经网络的类型;
通过上述步骤,获取到原始深度神经网络后,需要对其进行判断,确定获 得的原始深度神经网络的类型。其中,深度神经网络的类型包括卷积神经网络 (ConvolutionalNeural Network,CNN)和循环神经网络(Recurrent Neural Network, RNN)。
CNN是目前深度学习中非常常用的一种网络形式,受到动物视觉皮层的生 命原理的启发,最早是Yann Lecun等人提出LeNet,并应用于银行支票的手写 数字识别,同时因为CNN的平移不变性而被称作空间不变的人工神经网络, 目前图像分类是CNN最普遍的应用方向。
RNN是一种具有记忆功能的网络结构,能够处理序列模型和数据间的时间 依赖,主要应用于语音识别、自然语言处理、机器翻译等任务。
S103、若原始深度神经网络的类型为循环神经网络,将原始深度神经网络 的LSTM单元的参数合并,获得合并参数;
通过上述步骤,如果确定原始深度神经网络的类型为循环神经网络,则将 原始深度神经网络的长短期记忆(Long-Short Term Memory,LSTM)单元的参 数合并,获得合并参数。
在循环神经网络中,通常,我们定义输入序列为x=(x1,...,xT),隐藏向量 序列为h=(h1,...,hT),输出向量序列为y=(y1,...,yT),T表示时间步,即序 列的长度。一个简单的RNN在时间步t的运算为:
ht=f(Wxhxt+Whhht-1+bh)
yt=g(Whyht+by)
其中,b表示偏移向量,W为权重矩阵。
受到梯度消失和梯度爆炸问题的限制,简单RNN难以对具有长时间依赖 的数据进行建模,因此训练一个RNN网络是比前馈网络要困难的。LSTM单元 通过引入门控单元克服了简单RNN的这项缺陷,成为使用最广泛的RNN的变 体。LSTM最早由Hochreiter等人提出,是一种具有三个门控单元和一个记忆 细胞的RNN,它利用门控单元来控制当前的记忆状态,决定需要保留的有价值 信息和可以遗忘的无用信息。LSTM单元结构的隐藏层在时间步t的运算过程 如下:
it=σ(Wixt+Uiht-1+bi)
ft=σ(Wfxt+Ufht-1+bf)
ot=σ(Woxt+Uoht-1+bo)
ht=ot⊙tanh(ct)
其中,W与U为矩阵,i、f、o、c分别代表输入门、遗忘门、输出门、记 忆单元。输入门保持对当前存储器单元有用的候选记忆单元值,遗忘门保留对 当前记忆单元有用的先前存储器单元值,输出门保留对输出和下一个时间步隐 藏层计算有用的记忆单元值,在每一个时间步,新的隐藏单元ht基于当前输入xt和上一个隐藏状态ht-1进行更新。
本步骤,需要将上述的参数合并,从而获得合并参数,即合并参数 hci=Wixt+Uiht-1+bi、hcf=Wfxt+Ufht-1+bf、hco=Woxt+Uoht-1+ bo、hcc=Wcxt+Ucht-1+bc。
S104、采用张量火车分解算法,对合并参数进行压缩,得到目标参数;
通过上述步骤,获得合并参数之后,需要采用张量火车分解算法,对合并 参数进行压缩,得到目标参数。
张量是矩阵的高维度的推广,是指维度大于等于3的数组,因此深度神经 网络中的权重均可以表示为张量的形式。张量分解算法包括CP分解、Tucker 分解和张量火车(Tensor Train,TT)分解,其中,CP分解的一个巨大的弊端 在于其canonical rank的计算是一个NP难的问题,从而计算张量的近似表示的 数值算法可能会陷入病态条件,极容易困在局部最优点;Tucker分解是稳定的, 但是由于核心张量存在,在保留了更多信息的同时,导致其参数数目仍然是与 维度呈指数关系,对于高维张量,压缩效果有限;TT分解可以直接应用在训练 过程中,相对于CP分解和Tucker分解,具备简单、稳定、分解效果好等优势,并且能够高效执行线性代数运算。因此,本实施例中,采用张量火车分解算法 对合并参数进行压缩。
S105、将合并参数替换为目标参数,得到第一目标深度神经网络;
通过上述步骤,获得通过张量火车分解算法压缩后的目标参数后,需要将 原始深度神经网络中的合并参数替换为目标参数,从而得到第一目标深度神经 网络,该第一目标深度神经网络即为原始深度神经网络压缩后的深度神经网络。
S106、若原始深度神经网络的类型为卷积神经网络,采用张量火车分解算 法,对原始深度神经网络中原始卷积核与原始全连接层进行压缩,得到目标卷 积核与目标全连接层;
通过S102步骤,如果确定原始深度神经网络的类型为卷积神经网络,则采 用张量火车分解算法,对原始深度神经网络中的原始卷积核与原始全连接层进 行压缩,从而得到目标卷积核与目标全连接层。
卷积层的作用是寻找图像中的局部连接来创建特征图,卷积核在输入特征 图上平移步进,每次对二者重叠的局部区域进行元素相称并求和,得到一个输 出,通常卷积核用于寻找适合于当前任务的特征。卷积层的输入是3D的,是 由一组2D输入特征图组成,这一维度称作channel,其形状为H×W×C。在 这种情况下,卷积滤波器也是3D的,从而能够覆盖全部的输入通道。每个卷 积滤波器对输入进行卷积后生成一副2D输出特征图。通常,在网络中,整体 的滤波器的是一个4D张量,形状为d×d×C×M,其中d代表滤波器的空间 大小,C是输入通道维度,M是输出通道维度(滤波器的个数),最终计算得 到形状为H′×W′×M输出特征:
wj=(w′-1)s+j-p,hi=(h′-1)s+i-p
在卷积层的计算复杂度为:d×d×C×M×H′×W′。
其中,H、W分别为输入特征图的高和宽,H′、W′分别为输出特征图的高 和宽,C为输入特征的通道数,M为输出特征的通道数,s为滤波器移动的步 长,p为卷积操作时padding的大小,为卷积核,为输入特征,为输出特 征,i、j分别为输入神经元与输出神经元在该层的序号,c、m分别为输入特征 与输出特征的通道序号,hi为第i个输入神经元的高,wj为第j个输出神经元的 宽。
通常在网络的末端需要添加一些全连接层,用于从最后的卷积层获取特征, 获得图像在相应类别上的概率分布,并为任务制定最终决策。该层连接输入与 输出的全部神经元,输出y具有N个节点,输入x具有M个节点,W是大小 为M×N的权重矩阵。全连接层的运算为:y=Wx。在全连接层,计算复杂度 为M×N。
S107、将原始卷积核替换为目标卷积核,将原始全连接层替换为目标全连 接层,得到第二目标深度神经网络。
通过上述步骤,获得通过张量火车分解算法压缩后的目标卷积核和目标全 连接层后,需要将原始深度神经网络中的原始卷积核替换为目标卷积核,将原 始深度神经网络中的原始全连接层替换为目标全连接层,从而得到第二目标深 度神经网络,该第二目标深度神经网络即为原始深度神经网络压缩后的深度神 经网络。
本实施例的深度神经网络的压缩方法,首先获取原始深度神经网络,确定 原始深度神经网络的类型,如果原始深度神经网络的类型为循环神经网络,则 将该神经网络中长短期记忆单元的参数合并,得到合并参数;再采用张量火车 分解算法,对合并参数进行压缩,得到目标参数;最后将合并参数替换为目标 参数,得到第一深度神经网络;如果原始深度神经网络的类型为卷积神经网络, 采用张量火车分解算法,对该神经网络中的原始卷积核与原始全连接层进行压 缩,得出目标卷积核与目标全连接层,最后将原始卷积核替换为目标卷积核, 原始全连接层替换为目标全连接层,得到第二深度神经网络。这样,本实施例采用张量火车分解算法对深度神经网络进行压缩,降低了计算复杂度,并且张 量火车分解算法相较于其他分解方法,稳定性较高,分解效果较好,从而保证 了深度神经网络压缩的稳定性与有效性。
图2是本发明的深度神经网络的压缩方法实施例二的流程图,如图2所示, 本实施例的深度神经网络的压缩方法是在图1所述实施例的基础上,进一步更 加详细地对本发明的技术方案进行描述。
S201、获取原始深度神经网络;
该步骤的执行过程与图1所示的S101的执行过程相同,此处不再赘述。
S202、确定原始深度神经网络的类型;
该步骤的执行过程与图1所示的S102的执行过程相同,此处不再赘述。
S203、若原始深度神经网络的类型为循环神经网络,将原始深度神经网络 LSTM单元的参数合并,获得合并参数;
该步骤的执行过程与图1所示的S103的执行过程相同,此处不再赘述。
S204、采用张量火车分解算法,对合并参数进行TTL运算,得到目标参数;
通过上述步骤,获得合并参数后,采用张量火车分解算法,对该合并参数 进行张量火车层(Tensor TrainLayer,TTL)运算,从而得到目标参数。其中, TTL运算的运算过程为:
第一,对需要分解的矩阵进行因式分解,得到第一张量的形状;
需要分解的矩阵W∈RM×N,其中,输出y具有N个节点,输入x具有M 个节点,W是大小为M×N的权重矩阵,通过因式分解,使 将矩阵W展开为d维张量则张量的形状为[m1×n1,m2×n2,…, md×nd],其中,d与k为正整数,d为张量维度。
第二,矩阵中的索引与第一张量中的索引相互映射,得到第一目标张量;
(l,t)为元素在矩阵中的索引,((i1,j1),(i2,j2),...,(id,jd))为元素在第一张量中的索引,矩阵中的索引与第一张量中的索引相互映射,从而得到第一目标张 量,第一目标张量的表达式为:(i2,j2),...,(id,jd))= G1[i1,j1]…Gd[id,jd]。
第三,对需要分解的第一向量进行因式分解,得到第二张量的形状;
需要分解的第一向量为输入向量x,x∈RN,通过因式分解,使得 将第一向量x展开成d维张量得到第二张量的形状为 (n1,n2,…,nd)。
第四,第一向量中的索引与第二张量中的索引相互映射,得到第二目标张 量;
向量坐标l为元素在第一向量中的索引,(i1,...,id)为元素在第二张量中的索引,第一向量中的索引与第二张量中的索引相互映射,得到第二目标张量,第 二目标张量的表达式为:其中,l∈{1,…,N},ik∈{1,…,nk}。
第五,对所述偏移向量进行因式分解,得到第三张量的形状;
偏移向量b∈RM,通过因式分解,使将偏移向量b展开成 d维张量得到第二张量的形状为(m1,m2,...,md)。
第六,所述偏移向量中的索引与所述第三张量中的索引相互映射,得到第 三目标张量;
该步骤中的映射与上述第一向量x的映射相同,得到第三目标张量,第三 目标张量的表达式为:
第七,根据设定的矩阵-向量的乘法公式、第一目标张量和第二目标张量, 得到TTL运算公式。
其中,设定的矩阵-向量的乘法公式为y=Wx+b,其中,W为矩阵,x 为向量,b为偏移向量,y为输出矩阵,因此,TTL运算公式为:
在上述实施例中,对合并参数进行了具体介绍,其中该合并参数均为矩阵, 本步骤中,对合并参数进行TTL运算,即
it=σ(TTL(Wixt+Uiht-1+bi))
ft=σ(TTL(Wfxt+Ufht-1+bf))
ot=σ(TTL(Woxt+Uoht-1+bo))
ht=ot⊙tanh(ct)
其中No是隐藏单元数目,Ni是输入单元数目。这样在分解过程中,维度的 因子分解为4No=(4n1)·n2·…nd。
对合并参数进行TTL运算,从而得到目标参数,这样不仅能够提高压缩率, 同时也充分利用并行计算的优势。
S205、将合并参数替换为目标参数,得到第一目标深度神经网络;
该步骤的执行过程与图1所示的S105的执行过程相同,此处不再赘述。
S206、若原始深度神经网络的类型为卷积神经网络,对原始深度神经网络 中原始卷积核进行形状变换,得到原始卷积核对应的卷积矩阵;
通过S202步骤,如果确定原始深度神经网络的类型为卷积神经网络,则对 原始深度神经网络中原始卷积核进行形状变换,得到原始卷积核对应的卷积矩 阵。
在卷积网络中,卷积核是形状为d×d×C×M的4D张量,一般情况可以 直接对其实施TT分解。不过考虑到可能存在1×1卷积,此时的卷积核只是2D 矩阵,直接对矩阵应用TT分解效率不高。因此,考虑一种能够兼容1×1卷积 的形式。考虑到卷积层可以被转换为矩阵乘法的形式,将4D的卷积核通过 形状变换为d2C×M的卷积矩阵K:
S207、采用张量火车分解算法,对卷积矩阵进行TT-Conv Layer运算,得 到目标卷积核;
通过上述步骤,获得卷积矩阵后,采用张量火车分解算法对卷积矩阵进行 张量火车卷积层(Tensor Train Conv Layer,TT-Conv Layer)运算,得到目标卷 积核。其中,TT-Conv Layer运算的运算过程为:
第一,对卷积矩阵进行因式分解,得到第四张量的形状;
对卷积矩阵K进行因式分解,使将卷积矩阵 K展开为(d+1)维高维张量则,张量的形状为[d2×c1×m1,d2×c2× m2,…,d2×cd×md],其中,k=1,…,d。
第二,卷积矩阵中的索引与所述第四张量中的索引相互映射,得到第四目 标张量,即第四目标张量的表达式为: (c1,m1),…,(cd,md))=G0[i,j]G1[c1,m1]…Gd[cd,md]。
第三,对需要分解的第二向量进行因式分解,得到第五张量的形状;
此步骤与TTL运算过程的第三步骤的执行过程相同,此处不再赘述。
第四,第二向量中的索引与所述第五张量中的索引相互映射,得到第五目 标张量;
此步骤与TTL运算过程的第四步骤的执行过程相同,此处不再赘述。
第五,将第五目标张量扩展为与所述第四目标张量相同的维度,得到第六 目标张量;
将第四步骤中的得到的第五目标张量扩展为与第四目标张量相同维度的 张量,即(d+1)维高维张量
第六,根据设定的矩阵乘法公式、第四目标张量和第六目标张量,得到 TT-ConvLayer运算公式。
根据设定的矩阵乘法公式、第四目标张量和第六目标张量,得到TT-Conv Layer运算公式,其中,设定的矩阵乘法公式为y=Kx,K为矩阵,x为向量, y为输出矩阵,因此,TT-Conv Layer运算公式为:
通过TT-Conv Layer运算,得到TT-Conv Layer运算公式,将原始卷积核 中的运算公式替换为TT-Conv Layer运算公式,从而得到目标卷积核。
S208、采用张量火车分解算法,对原始全连接层的权重矩阵进行TTL运算, 得到目标全连接层;
通过上述步骤,对原始卷积核压缩得到目标卷积核之后,采用张量火车分 解算法,对原始全连接层的权重矩阵进行TTL运算,得到目标全连接层。其中, TTL运算过程在S204步骤中已经进行了具体介绍,此处不再赘述。本步骤, 通过TTL运算得到原始全连接层权重矩阵的TTL运算公式: 通过TTL运算,得到TTL 运算公式,将原始全连接层中的运算公式替换为TTL运算公式,从而得到目标 全连接层。
S209、将原始卷积核替换为目标卷积核,将原始全连接层替换为目标全连 接层,得到第二目标深度神经网络。
该步骤的执行过程与图1所示的S107的执行过程相同,此处不再赘述。
本实施例的深度神经网络的压缩方法,首先获取原始深度神经网络,确定 原始深度神经网络的类型,如果原始深度神经网络的类型为循环神经网络,则 将该神经网络中长短期记忆单元的参数合并,得到合并参数;再采用张量火车 分解算法,通过TTL运算对合并参数进行压缩,得到目标参数;最后将合并参 数替换为目标参数,得到第一深度神经网络;如果原始深度神经网络的类型为 卷积神经网络,将原始深度神经网络中的原始卷积核进行形状变换得到对应的 卷积矩阵,采用张量火车分解算法,通过TT-Conv Layer运算对卷积矩阵进行 压缩得到目标卷积核,通过TTL运算对原始全连接层的权重矩阵进行压缩,得到目标全连接层,最后将原始卷积核替换为目标卷积核,原始全连接层替换为 目标全连接层,得到第二深度神经网络。这样,本实施例采用张量火车分解算 法对深度神经网络进行压缩,降低了计算复杂度,并且张量火车分解算法相较 于其他分解方法,稳定性较高,分解效果较好,从而保证了深度神经网络压缩 的稳定性与有效性。
为了更全面,对应于本发明实施例提供的深度神经网络的压缩方法,本申 请还提供了深度神经网络的压缩装置。
图3是本发明的深度神经网络的压缩装置实施例的结构示意图,如图3所 示,本实施例的深度神经网络的压缩装置包括获取模块101、确定模块102、合 并模块103、压缩模块104和替换模块105。
获取模块101,用于获取原始深度神经网络;
确定模块102,用于确定原始深度神经网络的类型;
合并模块103,用于若原始深度神经网络为循环神经网络,将原始深度神 经网络的长短期记忆单元的参数合并,获得合并参数;
压缩模块104,用于采用张量火车分解算法,对合并参数进行压缩,得到 目标参数;
替换模块105,用于将合并参数替换为目标参数,得到第一目标深度神经 网络;
压缩模块104,还用于若原始深度神经网络为卷积神经网络,采用张量火 车分解算法,对原始深度神经网络中原始卷积核与原始全连接层进行压缩,得 到目标卷积核与目标全连接层;
替换模块105,还用于将原始卷积核替换为目标卷积核,将原始全连接层 替换为目标全连接层,得到第二目标深度神经网络。
进一步地,压缩模块104,具体用于采用张量火车分解算法,对合并参数 进行TTL运算,得到目标参数;
对原始卷积核进行形状变换,得到原始卷积核对应的卷积矩阵;
采用张量火车分解算法,对卷积矩阵进行TT-Conv Layer运算,得到目标 卷积核;
采用张量火车分解算法,对原始全连接层的权重矩阵进行TTL运算,得到 目标全连接层。
本实施例的深度神经网络的压缩装置,首先通过获取模块101获取原始深 度神经网络,通过确定模块102确定原始深度神经网络的类型,如果原始深度 神经网络的类型为循环神经网络,则通过合并模块103将该神经网络中长短期 记忆单元的参数合并,得到合并参数;再通过压缩模块104采用张量火车分解 算法,通过TTL运算对合并参数进行压缩,得到目标参数;最后通过替换模块105将合并参数替换为目标参数,得到第一深度神经网络;如果原始深度神经 网络为卷积神经网络,通过压缩模块104将原始深度神经网络中的原始卷积核 进行形状变换得到对应的卷积矩阵,采用张量火车分解算法,通过T孓ConvLayer运算对卷积矩阵进行压缩得到目标卷积核,通过TTL运算对原始全连接 层的权重矩阵进行压缩,得到目标全连接层,最后通过替换模块105将原始卷 积核替换为目标卷积核,原始全连接层替换为目标全连接层,得到第二深度神 经网络。这样,本实施例采用张量火车分解算法对深度神经网络进行压缩,降 低了计算复杂度,并且张量火车分解算法相较于其他分解方法,稳定性较高, 分解效果较好,从而保证了深度神经网络压缩的稳定性与有效性。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关 该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实 施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描 述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除 非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表 示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码 的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其 中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或 按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员 所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。 在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执 行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方 式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有 用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合 逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA) 等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部 分步骤是可以通过程序来指令相关的硬件完成,所述程序可以存储于一种计算 机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中, 也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块 中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的 形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品 销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示 例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述 的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。 在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。 而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例 或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例 是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的 范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种深度神经网络的压缩方法,其特征在于,包括:
获取原始深度神经网络;
确定所述原始深度神经网络的类型;
若所述原始深度神经网络的类型为循环神经网络,将所述原始深度神经网络的长短期记忆LSTM单元的参数合并,获得合并参数;
采用张量火车分解算法,对所述合并参数进行压缩,得到目标参数;
将所述合并参数替换为所述目标参数,得到第一目标深度神经网络;
若所述原始深度神经网络的类型为卷积神经网络,采用张量火车分解算法,对所述原始深度神经网络中原始卷积核与原始全连接层进行压缩,得到目标卷积核与目标全连接层;
将所述原始卷积核替换为所述目标卷积核,将所述原始全连接层替换为所述目标全连接层,得到第二目标深度神经网络。
2.根据权利要求1所述的方法,其特征在于,所述采用张量火车分解算法,对所述合并参数进行压缩,得到目标参数,包括:
采用张量火车分解算法,对所述合并参数进行张量火车层TTL运算,得到所述目标参数。
3.根据权利要求1所述的方法,其特征在于,所述采用张量火车分解算法,对所述原始深度神经网络中原始卷积核与原始全连接层进行压缩,得到目标卷积核与目标全连接层,包括:
对所述原始卷积核进行形状变换,得到所述原始卷积核对应的卷积矩阵;
采用张量火车分解算法,对所述卷积矩阵进行张量火车卷积层TT-Conv Layer运算,得到所述目标卷积核;
采用张量火车分解算法,对所述原始全连接层的权重矩阵进行TTL运算,得到所述目标全连接层。
4.根据权利要求2或3所述的方法,其特征在于,所述TTL运算过程包括:
对需要分解的矩阵进行因式分解,得到第一张量的形状;
所述矩阵中的索引与所述第一张量中的索引相互映射,得到第一目标张量;
对需要分解的第一向量进行因式分解,得到第二张量的形状;
所述第一向量中的索引与所述第二张量中的索引相互映射,得到第二目标张量;
根据设定的矩阵-向量的乘法公式、第一目标张量和第二目标张量,得到TTL运算公式。
5.根据权利要求4所述的方法,其特征在于,所述设定的矩阵-向量的乘法公式为y=Wx+b,其中,W为矩阵,x为向量,b为偏移向量,y为输出矩阵。
6.根据权利要求5所述的方法,其特征在于,所述根据设定的矩阵-向量的乘法公式、第一目标张量和第二目标张量,得到TTL运算公式之前,包括:
对所述偏移向量进行因式分解,得到第三张量的形状;
所述偏移向量中的索引与所述第三张量中的索引相互映射,得到第三目标张量。
7.根据权利要求3所述的方法,其特征在于,所述TT-Conv Layer运算过程包括:
对所述卷积矩阵进行因式分解,得到第四张量的形状;
所述卷积矩阵中的索引与所述第四张量中的索引相互映射,得到第四目标张量;
对需要分解的第二向量进行因式分解,得到第五张量的形状;
所述第二向量中的索引与所述第五张量中的索引相互映射,得到第五目标张量;
将所述第五目标张量扩展为与所述第四目标张量相同的维度,得到第六目标张量;
根据设定的矩阵乘法公式、第四目标张量和第六目标张量,得到TT-Conv Layer运算公式。
8.一种深度神经网络的压缩装置,其特征在于,所述装置包括:获取模块、确定模块、合并模块、压缩模块和替换模块;
所述获取模块,用于获取原始深度神经网络;
所述确定模块,用于确定所述原始深度神经网络的类型;
所述合并模块,用于若所述原始深度神经网络为循环神经网络,将所述原始深度神经网络的长短期记忆单元的参数合并,获得合并参数;
所述压缩模块,用于采用张量火车分解算法,对所述合并参数进行压缩,得到目标参数;
所述替换模块,用于将所述合并参数替换为所述目标参数,得到第一目标深度神经网络;
所述压缩模块,还用于若所述原始深度神经网络为卷积神经网络,采用张量火车分解算法,对所述原始深度神经网络中原始卷积核与原始全连接层进行压缩,得到目标卷积核与目标全连接层;
所述替换模块,还用于将所述原始卷积核替换为所述目标卷积核,将所述原始全连接层替换为所述目标全连接层,得到第二目标深度神经网络。
9.根据权利要求8所述的装置,其特征在于,所述压缩模块还用于:
采用张量火车分解算法,对所述合并参数进行TTL运算,得到所述目标参数。
10.根据权利要求8所述的装置,其特征在于,所述压缩模块还用于:
对所述原始卷积核进行形状变换,得到所述原始卷积核对应的卷积矩阵;
采用张量火车分解算法,对所述卷积矩阵进行TT-Conv Layer运算,得到所述目标卷积核;
采用张量火车分解算法,对所述原始全连接层的权重矩阵进行TTL运算,得到所述目标全连接层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811619878.8A CN109766995A (zh) | 2018-12-28 | 2018-12-28 | 深度神经网络的压缩方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811619878.8A CN109766995A (zh) | 2018-12-28 | 2018-12-28 | 深度神经网络的压缩方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109766995A true CN109766995A (zh) | 2019-05-17 |
Family
ID=66450415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811619878.8A Withdrawn CN109766995A (zh) | 2018-12-28 | 2018-12-28 | 深度神经网络的压缩方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766995A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110289862A (zh) * | 2019-06-20 | 2019-09-27 | 成都有据量化科技有限公司 | 金融数据的压缩和解压方法、装置以及存储介质 |
CN110796238A (zh) * | 2019-10-29 | 2020-02-14 | 上海安路信息科技有限公司 | 卷积神经网络权重压缩方法及其系统 |
RU2734579C1 (ru) * | 2019-12-30 | 2020-10-20 | Автономная некоммерческая образовательная организация высшего образования "Сколковский институт науки и технологий" | Система сжатия искусственных нейронных сетей на основе итеративного применения тензорных аппроксимаций |
WO2020233130A1 (zh) * | 2019-05-23 | 2020-11-26 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
CN112669861A (zh) * | 2020-12-09 | 2021-04-16 | 北京百度网讯科技有限公司 | 音频数据处理方法、装置、设备和存储介质 |
RU2753591C1 (ru) * | 2020-10-23 | 2021-08-18 | Автономная некоммерческая образовательная организация высшего образования «Сколковский институт науки и технологий» | Способ сжатия и хранения трехмерных данных (варианты) |
CN113327616A (zh) * | 2021-06-02 | 2021-08-31 | 广东电网有限责任公司 | 声纹识别方法、装置、电子设备及存储介质 |
CN113537485A (zh) * | 2020-04-15 | 2021-10-22 | 北京金山数字娱乐科技有限公司 | 一种神经网络模型的压缩方法及装置 |
US11272188B2 (en) | 2019-05-24 | 2022-03-08 | NextVPU (Shanghai) Co., Ltd. | Compression for deep neural network |
WO2022119466A1 (en) * | 2020-12-01 | 2022-06-09 | Huawei Technologies Co., Ltd. | Device and method for implementing a tensor-train decomposition operation |
-
2018
- 2018-12-28 CN CN201811619878.8A patent/CN109766995A/zh not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020233130A1 (zh) * | 2019-05-23 | 2020-11-26 | 深圳先进技术研究院 | 一种深度神经网络压缩方法及相关设备 |
US11272188B2 (en) | 2019-05-24 | 2022-03-08 | NextVPU (Shanghai) Co., Ltd. | Compression for deep neural network |
CN110289862A (zh) * | 2019-06-20 | 2019-09-27 | 成都有据量化科技有限公司 | 金融数据的压缩和解压方法、装置以及存储介质 |
CN110796238A (zh) * | 2019-10-29 | 2020-02-14 | 上海安路信息科技有限公司 | 卷积神经网络权重压缩方法及其系统 |
RU2734579C1 (ru) * | 2019-12-30 | 2020-10-20 | Автономная некоммерческая образовательная организация высшего образования "Сколковский институт науки и технологий" | Система сжатия искусственных нейронных сетей на основе итеративного применения тензорных аппроксимаций |
CN113537485A (zh) * | 2020-04-15 | 2021-10-22 | 北京金山数字娱乐科技有限公司 | 一种神经网络模型的压缩方法及装置 |
RU2753591C1 (ru) * | 2020-10-23 | 2021-08-18 | Автономная некоммерческая образовательная организация высшего образования «Сколковский институт науки и технологий» | Способ сжатия и хранения трехмерных данных (варианты) |
WO2022119466A1 (en) * | 2020-12-01 | 2022-06-09 | Huawei Technologies Co., Ltd. | Device and method for implementing a tensor-train decomposition operation |
CN112669861A (zh) * | 2020-12-09 | 2021-04-16 | 北京百度网讯科技有限公司 | 音频数据处理方法、装置、设备和存储介质 |
CN112669861B (zh) * | 2020-12-09 | 2023-04-07 | 北京百度网讯科技有限公司 | 音频数据处理方法、装置、设备和存储介质 |
CN113327616A (zh) * | 2021-06-02 | 2021-08-31 | 广东电网有限责任公司 | 声纹识别方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109766995A (zh) | 深度神经网络的压缩方法与装置 | |
CN107239802A (zh) | 一种图像分类方法及装置 | |
CN109992779B (zh) | 一种基于cnn的情感分析方法、装置、设备及存储介质 | |
CN106295799B (zh) | 一种深度学习多层神经网络的实现方法 | |
CN106503654A (zh) | 一种基于深度稀疏自编码网络的人脸情感识别方法 | |
CN109829541A (zh) | 基于学习自动机的深度神经网络增量式训练方法及系统 | |
CN108416755A (zh) | 一种基于深度学习的图像去噪方法及系统 | |
CN107844784A (zh) | 人脸识别方法、装置、计算机设备和可读存储介质 | |
CN102622515B (zh) | 一种天气预测方法 | |
CN107239443A (zh) | 一种词向量学习模型的训练方法及服务器 | |
CN110462639A (zh) | 信息处理设备、信息处理方法及计算机可读存储介质 | |
CN107209871A (zh) | 具有回调的卷积矩阵相乘以用于深度卷积神经网络的深度瓦片化 | |
CN108197294A (zh) | 一种基于深度学习的文本自动生成方法 | |
CN107423814A (zh) | 一种采用深度卷积神经网络建立动态网络模型的方法 | |
CN107544960B (zh) | 一种基于变量绑定和关系激活的自动问答方法 | |
CN110473592A (zh) | 基于图卷积网络的有监督的多视角人类协同致死基因预测方法 | |
CN108710906A (zh) | 基于轻量级网络LightPointNet的实时点云模型分类方法 | |
CN110321997A (zh) | 高并行度计算平台、系统及计算实现方法 | |
CN112651360B (zh) | 一种小样本下骨架动作识别方法 | |
CN109784159A (zh) | 场景图像的处理方法、装置及系统 | |
CN106068519A (zh) | 用于共用神经元模型的高效实现的方法和装置 | |
CN105427241A (zh) | 一种大视场显示设备的畸变校正方法 | |
CN110472691A (zh) | 目标定位模块训练方法、装置、机器人及存储介质 | |
CN106408649A (zh) | 一种基于规则的体结构演化设计方法 | |
CN108470212A (zh) | 一种能利用事件持续时间的高效lstm设计方法 |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190517 |