CN111047038A - 一种利用分块循环矩阵的神经网络压缩方法 - Google Patents

一种利用分块循环矩阵的神经网络压缩方法 Download PDF

Info

Publication number
CN111047038A
CN111047038A CN201911084979.4A CN201911084979A CN111047038A CN 111047038 A CN111047038 A CN 111047038A CN 201911084979 A CN201911084979 A CN 201911084979A CN 111047038 A CN111047038 A CN 111047038A
Authority
CN
China
Prior art keywords
neural network
symbol vector
vector
block
feature map
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.)
Pending
Application number
CN201911084979.4A
Other languages
English (en)
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.)
Lattice Power Jiangxi Corp
Nanchang University
Original Assignee
Lattice Power Jiangxi Corp
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 Lattice Power Jiangxi Corp filed Critical Lattice Power Jiangxi Corp
Priority to CN201911084979.4A priority Critical patent/CN111047038A/zh
Publication of CN111047038A publication Critical patent/CN111047038A/zh
Pending legal-status Critical Current

Links

Images

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/044Recurrent networks, e.g. Hopfield networks
    • 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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种利用分块循环矩阵的神经网络压缩方法,涉及神经网络压缩方法领域,通过读取神经网络中最长基础随机符号向量,在神经网络的每层生成与该层输入维度相等的符号向量并与输入向量元素相乘得到新的输入向量,并训练构成新的块循环网络,存储最长基础随机符号向量和神经网络模型参数;采用细粒度的神经网络压缩方法对模型进行剪枝,进一步降低模型复杂度。通过引入随机符号向量,减少投影向量之间的相关性,从而保证模型的收敛,达到有效减少存储和带宽的目的。同时,避免了处理分块循环矩阵压缩神经网络时,由于分块大小增大而引起的性能下降的问题。

Description

一种利用分块循环矩阵的神经网络压缩方法
技术领域
本发明涉及神经网络压缩方法领域,具体涉及一种利用分块循环矩阵的神经网络压缩方法。
背景技术
近年来,深度神经网络取得了巨大的进展,很多算法都可以在图形处理器 (Graphprocessing unit,GPU)上进行实时计算,并在计算机视觉、自然语言处理等领域取得了巨大的成功。如何在不明显影响循环神经网络性能的前提下,对循环神经网络进行压缩,降低其参数量和复杂度,成了学术界和工业界的研究热点。
中国发明专利(公开号:CN109389221A)公开了一种基于模型计算的神经网络压缩方法,该方案基于剪枝方法和权重量化方法,对神经网络模型剪枝,能够减少模型的连接数,即减少模型的参数数量。对神经网络模型进行量化,能够降低模型内部权重占用的存储空间,提升模型计算速度。
中国发明专利(公开号:CN109190759A)公开了一种基于{-1,+1}分解的神经网络压缩与加速方法,该方法有对神经网络参数与激活值进行重新{-1,1}编码,降低模型参数的储存空间,实现模型计算加速的优点。
中国发明专利(公开号:CN108665067A)公开一种用于深度神经网络频繁传输的压缩方法及系统,该方案结合了深度神经网络在频繁传输上的多个模型之间的冗余性,利用了深度神经网络之间的知识信息进行压缩,减少了所需传输的大小和带宽。在相同带宽限制下,能更好地将深度神经网络进行传输,同时允许深度神经网络在前端进行针对性压缩的可能,而非只能将深度神经网络进行针对性压缩后进行部分的还原。
然而,上述三个公开的发明专利的方案均无法充分与硬件相匹配,同时对于分块循环矩阵,权重张量由块循环矩阵构成;投影相关性导致了严重的性能下降。
发明内容
为解决现有技术问题,本发明只需要较少的存储资源即可实现32倍的权重压缩;通过增加极少的存储符号向量和计算资源,保证准确度不下降,收敛速度提升。同时,结合细粒度的压缩方式,通过减少在特征图上抽取特征的卷积核,得到紧凑的网络,进一步提升网络的压缩性能。
本发明具体采用以下技术方案:
一种利用分块循环矩阵的神经网络压缩方法,包括以下步骤:
步骤1:通过读取神经网络中最长基础随机符号向量,在神经网络的每层截取该层所需长度的基础符号向量,扩展该层的基础符号向量至输入向量维度,根据符号向量的位置对输入向量做符号翻转,使符号向量与输入向量元素相乘得到新的输入向量;
步骤2:训练构成的新的块循环网络,存储最长基础随机符号向量和神经网络模型参数;
步骤3:根据输入特征图的稀疏度和信息丰富度,决定输入特征图的重要性。根据特征图的重要性去减少特征图上进行卷积的卷积核个数,对网络结构进行精简;
步骤4:采用细粒度算法对神经网络模型进行剪枝。
进一步的方案是,步骤1中所述的最长基础随机符号向量根据所有层输入特征向量的维度和分块大小确定。
进一步的方案是,步骤1中所述的符号向量生成步骤如下:
A:生成长度为n_sign的基础随机符号向量,其中n_sign的取值范围为区间[blocksize,n_x]。其中,基础随机符号向量的生成可以有多种方式:比如随机变量生成服从二项分布;
B:根据基础随机符号向量扩展出最后的随机符号向量。计算扩展操作次数block_sign=n_x/n_sign+1;将基础随机符号向量按一定规则生成新的符号向量,重复block_sign次,得到n_x维符号向量:
其中:n_sign为符号向量的长度;
n_x为输入向量的维度:
n_sign为符号的数目:
block size代表块大小:
block_sign代表每一个块所对应的符号的指数。
进一步的方案是,步骤1中所述的扩展满足:按块大小划分扩展后的符号向量,相邻两个块的符号向量不可相同。
进一步的方案是,步骤4中所述的细粒度算法流程如下:
a:计算每个特征图对应卷积核的稀疏度;
b:计算每个特征图对应卷积核的密度熵;
c:计算每个特征图的重要性分数;
d:计算每个特征图需要的卷积核个数:
e:使用K-均值算法对每个特征图对应的卷积核进行聚类,得到聚类中心和索引值。
本发明的有益效果:
在卷积层/循环神经网络层/全连接层压缩时,引入随机符号向量,减少投影向量之间的相关性,从而保证模型的收敛,达到有效减少存储和带宽的目的;
避免了块循环矩阵压缩神经网络时,分块大小增大时,性能下降明显;
通过增加极少的存储符号向量和计算资源,保证准确度不下降,收敛速度提升。结合细粒度的压缩方式,通过减少在特征图上抽取特征的卷积核,得到紧凑的网络,进一步提升网络的压缩性能。
附图说明
图1为本发明一种基于分块循环矩阵的神经网络压缩方法系统框图:
图2为本发明中循环神经网络符号向量转换结构图。
具体实施方式
本发明公开了一种利用分块循环矩阵的神经网络压缩方法,包括以下步骤:
步骤1:通过读取神经网络中最长基础随机符号向量,在神经网络的每层截取该层所需长度的基础符号向量,扩展该层的基础符号向量至输入向量维度,根据符号向量的位置对输入向量做符号翻转,使符号向量与输入向量元素相乘得到新的输入向量;
最长基础随机符号向量根据所有层输入特征向量的维度和分块大小确定。扩展满足:按块大小划分扩展后的符号向量,相邻两个块的符号向量不可相同。
符号向量生成步骤如下:
A:生成长度为n_sign的基础随机符号向量,其中n_sign的取值范围为区间[blocksize,n_x]。其中,基础随机符号向量的生成可以有多种方式:比如随机变量生成服从二项分布;
B:根据基础随机符号向量扩展出最后的随机符号向量。计算扩展操作次数block_sign=n_x/n_sign+1;将基础随机符号向量按一定规则生成新的符号向量,重复block_sign次,得到n_x维符号向量:
其中:n_sign为符号向量的长度;
n_x为输入向量的维度:
n_sign为符号的数目:
block size代表块大小:
block_sign代表每一个块所对应的符号的指数。
步骤2:训练构成的新的块循环网络,存储最长基础随机符号向量和神经网络模型参数;
步骤3:根据输入特征图的稀疏度和信息丰富度,决定输入特征图的重要性。根据特征图的重要性去减少特征图上进行卷积的卷积核个数,对网络结构进行精简;
具体为确定压缩网络的最长基础随机符号向量A,取最大的分块大小为A 的长度;记Y和W分别为神经网络层的输出W和块循环矩阵,B表示偏差,输入向量是指Y=WX+B中的X,对于卷积层X和W是经过im2col转换。im2col 转换具体指的是把每个卷积核提取成矩阵中的一行元素,再进行矩阵运算。训练构成的新的块循环网络,存储最长基础随机符号向量A和神经网络模型参数;上述处理好的循环神经网络层,可基于稀疏度对其网络结构作进一步精简。对于稀疏度,使用对应卷积神经网络层的卷积核的稀疏度来表征输入特征图的稀疏度,公式如下:
Figure RE-GDA0002354098660000041
N代表通道的数目。
其次,对于信息丰富度,可使用对应卷积核的密度熵来表征。
Figure RE-GDA0002354098660000042
代表卷积层的滤波器。计算一个最近邻矩阵MC其第i 行第j列代表,如果第j个卷积核在第i个卷积核的k近邻内,则
Figure RE-GDA0002354098660000051
,否则
Figure RE-GDA0002354098660000052
然后,计算每个卷积核的密度值为
Figure RE-GDA0002354098660000053
然后,使用密度熵来代表每个卷积核密度值的期望,即可以代表这部分卷积核的离散程度。
Figure RE-GDA0002354098660000054
其中,
Figure RE-GDA0002354098660000055
通过上述方法,计算出了输入特征图的稀疏度和信息丰富度,然后将两者结合起来,即可计算每个输入特征图的重要性。
Figure RE-GDA0002354098660000056
该数值越大,说明对应的输入特征图越重要。
步骤4:采用细粒度算法对神经网络模型进行剪枝。
a:计算每个特征图对应卷积核的稀疏度:
Figure RE-GDA0002354098660000057
b:计算每个特征图对应卷积核的密度熵:
Figure RE-GDA0002354098660000058
c:计算每个特征图的重要性分数:
Figure RE-GDA0002354098660000059
d:计算每个特征图需要的卷积核个数
Figure RE-GDA00023540986600000510
e:使用K-均值算法对每个特征图对应的卷积核进行聚类;其中K=QC,得到聚类中心BC和索引值IC
下面结合实施例和说明书附图对本发明作进一步的说明。
实施例1:VGG16实验
符号向量生成时,n_sign=block size,n_sign=32,block_sign=25。其中,扩展规则为:由基础符号向量循环向右移block_sign-1次,每次右移1位,将得到的结构拼接成800维符号向量。
将VGG16网络的倒数第二层全连接层替换为本方案提出的循环神经网络层,并采用基于细粒度的压缩方法对网络的卷积层进行剪枝。
以上实验分别在大数据集ImageNet2012做实验,并计算其压缩率和Top-1 Acc。实验结果如下表1、表2和表3所示。
结果显示,与没有压缩的VGG16网络相比,在牺牲极少准确率性能的情况下,网络参数量和复杂度大幅度下降。
实施例2:ResNet50实验
符号向量生成时,n_sign=40,block_sign=20。其中,扩展规则为:重复20 次基础符号向量,拼接成800维的符号向量。
将ResNet的全部全连接层替换为本方案提出的循环神经网络层,并采用基于细粒度的压缩方法对网络的卷积层进行剪枝。
以上实验分别在大数据集ImageNet2012做实验,并计算其压缩率和Top-1 Acc。实验结果如下表1、表2和表3所示。
结果显示,与没有压缩的ResNet50网络相比,在牺牲极少准确率性能的情况下,网络参数量和复杂度大幅度下降。
表1网络的Top-1Acc(%)
Figure RE-GDA0002354098660000061
表2网络的参数压缩率
Figure RE-GDA0002354098660000062
Figure RE-GDA0002354098660000071
表3网络的FLOPs压缩率(%)
Figure RE-GDA0002354098660000072
最后说明的是,以上仅对本发明具体实施例进行详细描述说明。但本发明并不限制于以上描述具体实施例。本领域的技术人员对本发明进行的等同修改和替代也都在本发明的范畴之中。因此,在不脱离本发明的精神和范围下所作的均等变换和修改,都涵盖在本发明范围内。

Claims (5)

1.一种利用分块循环矩阵的神经网络压缩方法,其特征在于:包括以下步骤:
步骤1:通过读取神经网络中最长基础随机符号向量,在神经网络的每层截取该层所需长度的基础符号向量,扩展该层的基础符号向量至输入向量维度,根据符号向量的位置对输入向量做符号翻转,使符号向量与输入向量元素相乘得到新的输入向量;
步骤2:训练构成的新的块循环网络,存储最长基础随机符号向量和神经网络模型参数;
步骤3:根据输入特征图的稀疏度和信息丰富度,决定输入特征图的重要性。根据特征图的重要性去减少特征图上进行卷积的卷积核个数,对网络结构进行精简;
步骤4:采用细粒度算法对神经网络模型进行剪枝。
2.根据权利要求1所述的一种利用分块循环矩阵的神经网络压缩方法,其特征在于:
步骤1中所述的最长基础随机符号向量根据所有层输入特征向量的维度和分块大小确定。
3.根据权利要求1所述的一种利用分块循环矩阵的神经网络压缩方法,其特征在于:
步骤1中所述的符号向量生成步骤如下:
A:生成长度为n_sign的基础随机符号向量,其中n_sign的取值范围为区间[blocksize,n_x]。其中,基础随机符号向量的生成可以有多种方式:比如随机变量生成服从二项分布;
B:根据基础随机符号向量扩展出最后的随机符号向量。计算扩展操作次数block_sign=n_x/n_sign+1;将基础随机符号向量按一定规则生成新的符号向量,重复block_sign次,得到n_x维符号向量:
其中:n_sign为符号向量的长度;
n_x为输入向量的维度:
n_sign为符号的数目:
block size代表块大小:
block_sign代表每一个块所对应的符号的指数。
4.根据权利要求1所述的一种利用分块循环矩阵的神经网络压缩方法,其特征在于:
步骤1中所述的扩展满足:按块大小划分扩展后的符号向量,相邻两个块的符号向量不可相同。
5.根据权利要求1所述的一种利用分块循环矩阵的神经网络压缩方法,其特征在于:
步骤4中所述的细粒度算法流程如下:
a:计算每个特征图对应卷积核的稀疏度;
b:计算每个特征图对应卷积核的密度熵;
c:计算每个特征图的重要性分数;
d:计算每个特征图需要的卷积核个数:
e:使用K-均值算法对每个特征图对应的卷积核进行聚类,得到聚类中心和索引值。
CN201911084979.4A 2019-11-08 2019-11-08 一种利用分块循环矩阵的神经网络压缩方法 Pending CN111047038A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911084979.4A CN111047038A (zh) 2019-11-08 2019-11-08 一种利用分块循环矩阵的神经网络压缩方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911084979.4A CN111047038A (zh) 2019-11-08 2019-11-08 一种利用分块循环矩阵的神经网络压缩方法

Publications (1)

Publication Number Publication Date
CN111047038A true CN111047038A (zh) 2020-04-21

Family

ID=70232565

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911084979.4A Pending CN111047038A (zh) 2019-11-08 2019-11-08 一种利用分块循环矩阵的神经网络压缩方法

Country Status (1)

Country Link
CN (1) CN111047038A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111860672A (zh) * 2020-07-28 2020-10-30 北京邮电大学 一种基于分块卷积神经网络的细粒度图像分类方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111860672A (zh) * 2020-07-28 2020-10-30 北京邮电大学 一种基于分块卷积神经网络的细粒度图像分类方法

Similar Documents

Publication Publication Date Title
CN106991646B (zh) 一种基于密集连接网络的图像超分辨率方法
CN107516129B (zh) 基于维度自适应的Tucker分解的深度网络压缩方法
US20220012593A1 (en) Neural network accelerator and neural network acceleration method based on structured pruning and low-bit quantization
Mehta et al. Espnet: Efficient spatial pyramid of dilated convolutions for semantic segmentation
CN107944556B (zh) 基于块项张量分解的深度神经网络压缩方法
Paszke et al. Enet: A deep neural network architecture for real-time semantic segmentation
CN110781912A (zh) 一种基于通道扩张倒置卷积神经网络的图像分类方法
CN110909874A (zh) 一种神经网络模型的卷积运算优化方法和装置
CN112036475A (zh) 融合模块和多尺度特征融合卷积神经网络及图像识别方法
CN113222818A (zh) 一种使用轻量化多通道聚合网络重建超分辨率图像的方法
CN113297427A (zh) 一种基于u型嵌套网络的图分类方法
US20240202982A1 (en) 3d point cloud encoding and decoding method, compression method and device based on graph dictionary learning
US20230135109A1 (en) Method for processing signal, electronic device, and storage medium
Xu et al. Singular vector sparse reconstruction for image compression
CN111986085A (zh) 一种基于深度反馈注意力网络系统的图像超分辨率方法
Luo et al. Multi-scale receptive field fusion network for lightweight image super-resolution
CN110110852B (zh) 一种深度学习网络移植到fpag平台的方法
Wang et al. RFPruning: A retraining-free pruning method for accelerating convolutional neural networks
CN111047038A (zh) 一种利用分块循环矩阵的神经网络压缩方法
Li et al. A graphical approach for filter pruning by exploring the similarity relation between feature maps
Qi et al. Learning low resource consumption cnn through pruning and quantization
CN113256496A (zh) 一种轻量级渐进式特征融合的图像超分辨率系统及方法
CN116524180A (zh) 基于轻量级主干结构的戏曲舞台场景分割方法
CN112364989A (zh) 一种基于快速傅里叶变换的卷积神经网络加速设计方法
CN114118415B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200421

RJ01 Rejection of invention patent application after publication