基于块项张量分解的深度神经网络压缩方法技术

技术编号:17780475 阅读:69 留言:0更新日期:2018-04-22 09:23
本发明专利技术公开了一种基于块项张量分解的深度神经网络压缩方法。其包括获取深度神经网络框架,将权重矩阵W和输入向量x分别转化为高阶张量

【技术实现步骤摘要】
基于块项张量分解的深度神经网络压缩方法
本专利技术属于深度神经网络
,尤其涉及一种基于块项张量分解的深度神经网络压缩方法。
技术介绍
近年来,以深度神经网络为代表的深度学习在图像分类、语音识别、自然语言处理等人工智能领域取得了比传统方法显著提高的效果,进而吸引了学术界、工业界和政府的广泛关注。然而深度神经网络结构复杂、层数较多、参数量巨大,训练好的模型往往占用很大的存储空间,难以移植到小型终端上;并且时间复杂性也很高,即使在高性能图形处理器上训练也常常需要数天,这些都迫使我们需要压缩深度神经网络。由于深度神经网络的权重实质上就是一些高维矩阵,因此很自然的一种压缩方法就是矩阵分解,但矩阵分解的压缩能力太低,最多只能压缩数十倍。所以最近兴起了利用张量分解压缩的办法,比如“张量火车”分解方法能够把VGG网络中单层全连接层压缩成千上万倍。然而由于张量火车分解方法本身具有“不对称”和“线性表达能力”的特性,导致了压缩后的深度神经网络难以获得更高分类精度。
技术实现思路
本专利技术的专利技术目的是:为了解决现有技术中存在的以上问题,本专利技术提出了一种基于块项张量分解的深度神经网络压缩方法,以期能够在保持精度的同时获得更高的参数量压缩比。本专利技术的技术方案是:一种基于块项张量分解的深度神经网络压缩方法,包括以下步骤:A、获取深度神经网络框架;B、将深度神经网络的全连接层中的权重矩阵W和输入向量x分别转化为高阶张量W和高阶张量X;C、对步骤B中的高阶张量W进行块项张量分解处理;D、根据步骤B中的高阶张量X和步骤C中块项张量分解后的高阶张量W将深度神经网络的全连接层替换为块项张量层;E、采用后向传播算法对步骤D中替换后的深度神经网络进行训练。进一步地,所述步骤B中将深度神经网络的全连接层中的权重矩阵W转化为高阶张量W具体为:将权重矩阵W的行维度和列维度进行均匀分割,表示为层次分块矩阵形式,再将分割后的权重矩阵W转化为高阶张量W。进一步地,所述步骤B中将深度神经网络的全连接层中的输入向量x转化为高阶张量X具体为:将输入向量x的维度表示为张量形式,再转化为高阶张量X。进一步地,所述步骤C对步骤B中的高阶张量W进行块项张量分解处理具体为:对高阶张量W的维度进行重新排列,使得行维度和列维度对应的输入和输出以成对形式耦合排列,再将高阶张量W分解为若干个塔克分解的和。进一步地,所述高阶张量W进行块项张量分解后的维度与高阶张量X的维度相等。进一步地,所述步骤D根据步骤B中的高阶张量X和步骤C中块项张量分解后的高阶张量W将深度神经网络的全连接层替换为块项张量层具体为:将高阶张量X和块项张量分解后的高阶张量W相乘,替换深度神经网络的全连接层为块项张量层。进一步地,所述块项张量层将节点作为权重,边作为数据及其维度大小。本专利技术的有益效果是:本专利技术采用块项张量分解方法来构造块项张量层,以替换原始深度神经网络中的全连接层,利用块项张量层具有的“对称”和“指数表达能力”的特性,不仅能够大幅压缩全连接层的参数量还能够保持原网络的分类精度。附图说明图1为本专利技术的基于块项张量分解的深度神经网络压缩方法的流程示意图。图2为本专利技术实施例中权重矩阵转化示意图。图3为本专利技术实施例中高阶张量进行块项张量分解处理示意图。图4为本专利技术实施例中块项张量层示意图。图5为本专利技术实施例中在Cifar10数据集上测试精度与块项张量分解的两个秩的关系示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,为本专利技术的基于块项张量分解的深度神经网络压缩方法的流程示意图。一种基于块项张量分解的深度神经网络压缩方法,包括以下步骤:A、获取深度神经网络框架;B、将深度神经网络的全连接层中的权重矩阵W和输入向量x分别转化为高阶张量W和高阶张量X;C、对步骤B中的高阶张量W进行块项张量分解处理;D、根据步骤B中的高阶张量X和步骤C中块项张量分解后的高阶张量W将深度神经网络的全连接层替换为块项张量层;E、采用后向传播算法对步骤D中替换后的深度神经网络进行训练。在步骤A中,本专利技术获取一个深度神经网络框架,这里的深度神经网络可以选取分别适用于mnist、Cifar10、ImageNet三个数据集的Le网络、Cifar网络,Alex网络。这些深度神经网络都具有类似的结构:前面是一些卷积层,中间跟着一些全连接层,最后是输出层。而参数一般都集中在全连接层,其数量占比为80%以上,所以本专利技术的重点就是压缩全连接层。在步骤B中,本专利技术将深度神经网络的全连接层中的权重矩阵W和输入向量x分别转化为高阶张量W和高阶张量X。由于全连接层最主要的运算其实就是权重矩阵W和输入向量x的乘积运算,因此本专利技术首先将权重矩阵W的行维度和列维度进行尽量均匀的分割,将权重矩阵W的维度表示为层次分块矩阵形式,再将分割后的权重矩阵W转化为高阶张量W;再将输入向量x的维度直接重塑表示为张量形式,再转化为高阶张量X。如图2所示,为本专利技术实施例中权重矩阵转化示意图。通过将原始的高维矩阵分割成“层次分块矩阵”的形式,再重塑成一个高阶张量,这里矩阵的行维度I=I1I2I3,列维度J=J1J2J3。对于Le网络:第一层全连接层的权重矩阵的维度为,输入向量维度为800。本专利技术把输入维度转化为5×5×8×4,输出维度转化为5×5×5×4,所以转化后的高阶张量维度为(5×5)×(5×)×(8×5)×(4×4),下面的操作类似,本专利技术只描述维度的数值变化来简述。对于Cifar网络:输入2304转化为6×6×8×8,输出384转化为6×4×4×4;对于Alex网络:输入6400转化为10×10×8×8,输出4096转化为8×8×8×8。在步骤C中,本专利技术对步骤B中的高阶张量W进行块项张量分解处理,具体为:对高阶张量W的维度进行重新排列,使得行维度和列维度对应的输入和输出以成对形式耦合排列,再对高阶张量W进行块项张量分解,即将高阶张量W分解为若干个塔克分解的和。特别的,高阶张量W进行块项张量分解后的维度需要与高阶张量X的维度匹配,即高阶张量X的一系列维度In要和高阶张量W分解出来的一系列维度In相等,n=1,2,3…N。如图3所示,为本专利技术实施例中高阶张量进行块项张量分解处理示意图。通过高阶张量的维度进行重新排列,使得(I1,J1),(I2,J2)…(IN,JN)以成对形式耦合排列,再进行块项张量分解,即将一个4阶张量W(左边)分解为若干个塔克分解的和(右边),每一个塔克分解类似于矩阵的奇异值分解,其中,A(N)表示因子矩阵,表示核张量,RT表示塔克分解的秩,RC表示塔克分解的块的个数,表示单位张量。这里主要涉及块项张量分解的两个秩的选取:对于Le网络:RC=1,RT=2,3;对于Cifar网络:RC=1,2,4,6,RT=2,3,4;对于Alex网络:RC=1,4,RT=2,3。在步骤D中,本专利技术根据步骤B中的高阶张量X和步骤C中块项张量分解后的高阶张量W将深度神经网络的全连接层替换为块项张量层,具体为:将高阶张量X和块项张量分解后的高阶张量W相乘,替换深度神经网络的全连接层为块项张量层。如图4所示,为本专利技术实施例本文档来自技高网...
基于块项张量分解的深度神经网络压缩方法

【技术保护点】
一种基于块项张量分解的深度神经网络压缩方法,其特征在于,包括以下步骤:A、获取深度神经网络框架;B、将深度神经网络的全连接层中的权重矩阵W和输入向量x分别转化为高阶张量

【技术特征摘要】
1.一种基于块项张量分解的深度神经网络压缩方法,其特征在于,包括以下步骤:A、获取深度神经网络框架;B、将深度神经网络的全连接层中的权重矩阵W和输入向量x分别转化为高阶张量W和高阶张量X;C、对步骤B中的高阶张量W进行块项张量分解处理;D、根据步骤B中的高阶张量X和步骤C中块项张量分解后的高阶张量W将深度神经网络的全连接层替换为块项张量层;E、采用后向传播算法对步骤D中替换后的深度神经网络进行训练。2.如权利要求1所述的基于块项张量分解的深度神经网络压缩方法,其特征在于,所述步骤B中将深度神经网络的全连接层中的权重矩阵W转化为高阶张量W具体为:将权重矩阵W的行维度和列维度进行均匀分割,表示为层次分块矩阵形式,再将分割后的权重矩阵W转化为高阶张量W。3.如权利要求1或2所述的基于块项张量分解的深度神经网络压缩方法,其特征在于,所述步骤B中将深度神经网络的全连接层中的输入向量x转化为高阶张量X具体为:将输入向量x的维度表示为...

【专利技术属性】
技术研发人员:徐增林李广西叶锦棉陈迪
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1