CN110020721B - 一种基于参数压缩的目标检测深度学习网络优化方法 - Google Patents
一种基于参数压缩的目标检测深度学习网络优化方法 Download PDFInfo
- Publication number
- CN110020721B CN110020721B CN201910281117.4A CN201910281117A CN110020721B CN 110020721 B CN110020721 B CN 110020721B CN 201910281117 A CN201910281117 A CN 201910281117A CN 110020721 B CN110020721 B CN 110020721B
- Authority
- CN
- China
- Prior art keywords
- data
- index
- weight
- bit
- bit data
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种于FPGA硬件平台上对深度学习神经网络网络参数进行压缩的方法,具体涉及霍夫曼编码,并结合FPGA硬件资源特点对参数进行量化压缩,这种压缩方式能将原来的参数压缩20%‑30%,从而减小了参数所需的存储空间并加快神经网络前向推理速度,使得在小型化设备实现利用神经网络进行实时性目标检测成为可能。本发明的步骤为:一、根据参数的数据分布对全精度参数进行重新编码并得到一套数据位数为8bit的码表;二、将分布最多的数据用4bit数据索引来表示,其余分布数据用8bit数据索引表示;三、使用布尔数组来做数据索引的索引;四、检测布尔数组为1的时候通过移位得到分布最高的数据的索引;五、利用4bit或者8bit索引去码表中查找对应真实值。
Description
技术领域
本发明专利属于神经网络优化领域,尤其涉及一种基于新型参数压缩方法并结合FPGA硬件资源特点,对目标检测深度学习网络优化方法。
背景技术
深度神经网络是一种效果良好的方法,广泛应用于多种领域。在目标检测应用中常用的卷积神经网络是深度神经网络的一种变化形式。卷积神经网络模型在发展中尺寸不断增大,从而拥有计算密集与参数存储量大的特点,在很多资源受限的设备中无法部署应用。传统神经网络模型使用矩阵的数据结构存储网络参数,且数据采用32bit浮点型形式存储,在这些参数矩阵中不仅有大量的0值,且包含众多高概率重复数据。数据重复后直接存储会导致所需要的存储空间变大,存储效率降低,更重要的是会导致检测的时候读取参数所耗的时间变长,从而检测速度变慢,无法实现实时检测的目的。
发明内容
研究表明,采用8bit定点型格式去存储32bit浮点型权重数据,在不大范围降低检测效果的基础上会大幅压缩参数,减少数据存储空间。同时,不是简单地直接存储得到的数据(直接得到的数据中含有大量重复数据),而是减少重复数据的重复存储,又将进一步压缩参数,减少数据存储空间。因此,本发明提出一种基于参数压缩的目标检测深度学习网络优化方法,旨在利用霍夫曼编码规则,并结合FPGA硬件资源特点对参数进行量化压缩,这种压缩方式会随着数据概率分布而有不同的压缩率,从而减小了参数所需的存储空间并加快神经网络前向推理速度,使得在小型化设备实现利用神经网络进行实时性目标检测成为可能。
本发明目的是根据霍夫曼编码规则,同时利用FPGA硬件资源的特点对参数进行量化压缩,以达到减小了参数所需的存储空间并加快神经网络前向推理速度目的,从而使得在小型化设备实现利用神经网络进行实时性目标检测成为可能。
本发明通过以下技术方案来实现上述目的:
一种基于新型参数压缩方法并结合FPGA硬件资源特点,对目标检测深度学习网络优化方法,包括以下步骤:
步骤一,根据权重数据分布对权重数据进行重新编码并得到一套数据位数为8bit的码表;
步骤二,将分布最多的权重数据用4bit数据索引来表示,其余分布的权重数据用8bit数据索引表示;
步骤三,使用布尔数组来做数据索引的索引;
步骤四,检测布尔数组为1的时候通过移位得到分布最高的权重数据的数据索引;
步骤五,利用4bit或者8bit数据索引去码表中查找对应真实值。
进一步的,步骤一中重新编码的具体实现过程如下,
将每一层的权重数据分成[2-16,2-15,…,20,21,…,215]32组,对所有权重数据取绝对值,将分布在数组之间的权重数据向左规整到这32组中最邻近的数据中,并做出直方图;然后用边界宽度为8,步进为1的矩形区域划过直方图,重合面积最大的时的权重数据范围,即为权重信息主要集中的部分,将这一部分的权重数据编码到[-128,127]中,超出边界的权重数据规整为边界值;
将权重数据转换成8位数据进行编码时,权重的量化尺度S1为:
其中,权重的最小值为2m。
进一步的,步骤一中生成码表放置在高速RAM里面便于快速读取数据。
进一步的,步骤三中使用布尔数组来做数据索引的索引,其具体过程为,对权重数据的数据索引数组对应的布尔数组所在的存储空间进行数值扫描,如果发现数值为0,则与该位数值对应的数据索引数组为8bit数据;如果发现数值为1,则与该位数值对应的数据索引数组为两个4bit数据,此时将该位数据索引数组值向左向右移位4bit分别得到两个4bit数据。
进一步的,步骤四中通过左移四位得到的后4bit数据表示的数据索引,而向右移动4bit数据得到的前4bit数据表示的数据索引。
在如上所述算法流程的基础上,本发明实现了利用霍夫曼编码规则,并结合FPGA硬件资源特点对参数进行量化压缩,这种压缩方式会随着数据概率分布而有不同的压缩率,从而减小了参数所需的存储空间并加快神经网络前向推理速度,使得在小型化设备实现利用神经网络进行实时性目标检测成为可能。具体压缩率的计算如下:
假设量化得到的[-128,127]总共256个数据的概率分别为
p1、p2、p3......p255、p256。其中概率最高的16位分别是
其中信息熵为
按照我们的编码方式得到的平均码长为
则编码效率为
而若采用定长8bit编码,其码长为8,其编码效率为
参数编码效率提升了
Δη=(η1-η2)×100%
而不压缩时m个参数存储空间大小为
m1=8m bit
而压缩之后的参数存储空间为
则参数空间压缩效率为
可以根据相应的数据概率分布和参数个数来计算相应的编码效率和空间压缩效率。
本发明的有益之处在于:
可以大幅度减少参数存储空间,加快前向推理速度,而且实际上,这种参数存储方式并不只限于神经网络,其他于FPGA上实现的,需要大量参数存储空间的项目,均可以通过该方式有效减小所需的参数存储空间。
附图说明
为了易于说明,本发明由下述的实施例及附图进行详细描述。
图1为本发明的流程图。
图2为数据分布示意图。
图3为数据索引存储示意图。
图4为数据计算过程示意图。
图5为一个目标检测深度学习网络框架。
图6为一个目标检测深度学习网络参数构成。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
下面将结合附图对本发明实施例进行详细说明。
一个具体的实施例子是YOLOv3目标检测深度学习网络。图4为YOLOv3目标检测深度学习网络框架。YOLOv3对YOLO9000进行了改进,网络模型比YOLO9000更大,进一步提高检测准确率,但速度比YOLO9000稍慢。与其他目标检测算法诸如SSD、DSSD等算法相比YOLOv3的综合性能仍然很是最好的,被业界誉为是最适合的工程算法,增加了候选框预测增加是否包含物体的判断,每个候选框可以预测多个分类,使用逻辑归二分类器进行分类。
从图5中我们可以看出卷积神经网络的参数数量非常庞大,如果用32位浮点型的数据来表示,那么就会占用大量的硬件内存并且浮点运算会消耗大量的硬件资源,这种类型的数据对硬件并不友好。实验已经证明8位参数的和32位参数的卷积神经网络得出的结果在精度上相差并不是很大,网络在训练的过程中学习到了数据样本的模式可分性与数据中本来就存在的噪声,所以使得网络具有较强的鲁棒性。与图像上目标间的位置,姿态,角度等的变化程度相比,因为量化而产生的噪声只是很少的一部分,但实际上这些噪声引进的变动同样会使各个层的激活值输出发生变动,但却对结果影响不大。
具体地,参考附图1和附图2所示,本发明上述实施例采用了一种基于新型参数压缩方法并结合FPGA硬件资源特点,对目标检测深度学习网络优化的方法。流程包括:根据权重数据分布对权重数据进行重新编码并得到一套数据位数为8bit的码表;将分布最多的权重数据用4bit数据索引来表示,其余分布的权重数据用8bit数据索引表示;使用布尔数组来做数据索引的索引;检测布尔数组为1的时候通过移位得到分布最高的权重数据的索引;利用4bit或者8bit索引去码表中查找对应真实值。
具体步骤如下:
步骤一:根据权重数据的分布对权重数据进行重新编码并得到一套数据位数为8bit的码表
如图2所示,将32位浮点型的数据用8位数据表示,相当于信息再编码的过程,从信息论的角度来说,我们就需要用有限位宽的数据尽量去编码最多的输入信息,以减小信息的损失。于是,我们将每一层的权重数据分成[2-16,2-15,…,20,21,…,215]32组,对所有权重数据取绝对值,将分布在数组之间的权重数据向左规整到这32组中最邻近的数据中,并做出直方图。然后用边界宽度为8,步进为1的矩形区域划过直方图,重合面积最大的时的权重数据范围,即为权重信息主要集中的部分,我们将这些权重数据编码到[-128,127]中,超出边界的权重数据规整为边界值。但实际实验中,由于大权值比小权值更重要[1],所以需要将编码的位置向左移动两位,这样实验的得到的结果会有一定的提升。假设我们得到重合面积最大时,权重的最小值为2m,于是,权重的量化尺度S1为:
[1]Han,Song,Pool,Jeff,Tran,John,and Dally,William J.Learning bothweights and connections for efficient neural networks.In Advances in NeuralInformation Processing Systems,2015.
步骤二:将分布最多的权重数据用4bit数据索引来表示,其余分布权重数据用8bit数据索引表示;
如图2所示,我们可以看出,权重数据的分布并不是均匀分布,这样的数据就存在一定的冗余,采用霍夫曼编码就能减少这些冗余。于是,我们依据权重数据的分布来改变数据索引位数,将分布最多的数据用4bit数据索引来表示,其余分布数据用8bit数据索引表示。
步骤三:使用布尔数组来做数据索引的索引;
如图3所示,依据权重数据的分布来重新编码,得到一套码表,对分布最多的数据索引用4bit来表示,并使用布尔数组来做权重数据的索引,这样相当于原来只能存储一个数据索引的8bit数据,现在可以存储两个分布最多的数据的索引。
对权重数据的数据索引数组对应的布尔数组所在的存储空间进行数值扫描,如果发现数值为0,则与该位数值对应的数据索引数组为8bit数据;如果发现数值为1,则与该位数值对应的数据索引数组为两个4bit数据,此时将该位数据索引数组值向左向右移位4bit分别得到两个4bit数据。
步骤四:检测布尔数组为1的时候通过移位得到分布最高的权重数据的数据索引;
如图3所示,当检测数组值为1时,通过移位的方式就能恢复其实际值,左移四位得到的后4bit数据表示的数据索引,而向右移动4bit数据得到的前4bit数据表示的数据索引。
步骤五:利用4bit或者8bit数据索引去码表中查找对应真实值;
再通过码表查找到其对应的真实值,这种对权重进行霍夫曼编解码的方式是很容易使用软件来实现的,这种压缩方式会随着数据概率分布而有不同的压缩率。
优选地,从32bit到8bit数据的量化过程,我们为了减小信息的损失,所有权重数据取绝对值,将分布在数组之间的数据向左规整到这32组中最邻近的数据中,并做出直方图。然后用边界宽度为8,步进为1的矩形区域划过直方图,重合面积最大的时的权重数据范围,即为权重信息主要集中的部分。
优选地,所述的生成码表将放置在高速RAM里面便于快速读取数据。
更优选地,整个压缩过程中将结合FPGA硬件资源特点,利用实时生成的硬件电路进行高速运算,并在运算结束后利用ARM将数据存储起来。
进一步优选地,利用FPGA硬件资源特点,当检测布尔数组为1的时候,只需要通过移位便可以得到bit数据表示的数据索引。
根据具体参数分布情况实验测量,这种压缩方式能将原来的参数压缩20%-30%。
以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (3)
1.一种基于参数压缩的目标检测深度学习网络优化方法,其特征在于,包括如下步骤:
步骤一,根据权重数据分布对权重数据进行重新编码并得到一套数据位数为8bit的码表;具体实现过程如下,
将每一层的权重数据分成[2-16,2-15,…,20,21,…,216]32组,对所有权重数据取绝对值,将分布在数组之间的权重数据向左规整到这32组中最邻近的数据中,并做出直方图;然后用边界宽度为8,步进为1的矩形区域划过直方图,重合面积最大时的权重数据范围,即为权重信息主要集中的部分,将这些权重数据编码到[-127,127]中,超出边界的权重数据规整为边界值;
将权重数据转换成8位数据进行编码时,权重的量化尺度S1为:
其中,权重的最小值为2m;
步骤二,将分布最多的权重数据用4bit数据索引来表示,其余分布的权重数据用8bit数据索引表示;
步骤三,使用布尔数组来做数据索引的索引;其具体过程为,
对权重数据的数据索引数组对应的布尔数组所在的存储空间进行数值扫描,如果发现数值为0,则与该位数值对应的数据索引数组为8bit数据;如果发现数值为1,则与该位数值对应的数据索引数组为两个4bit数据,此时将该位数据索引数组值向左向右移位4bit分别得到两个4bit数据;
步骤四,检测布尔数组为1的时候通过移位得到分布最高的权重数据的数据索引;
步骤五,利用4bit或者8bit数据索引去码表中查找对应真实值。
2.如权利要求1所述的一种基于参数压缩的目标检测深度学习网络优化方法,其特征在于:步骤一中生成码表放置在高速RAM里面便于快速读取数据。
3.如权利要求1所述的一种基于参数压缩的目标检测深度学习网络优化方法,其特征在于:步骤四中通过左移四位得到的后4bit数据表示的数据索引,而向右移动4bit数据得到的前4bit数据表示的数据索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281117.4A CN110020721B (zh) | 2019-04-09 | 2019-04-09 | 一种基于参数压缩的目标检测深度学习网络优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910281117.4A CN110020721B (zh) | 2019-04-09 | 2019-04-09 | 一种基于参数压缩的目标检测深度学习网络优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110020721A CN110020721A (zh) | 2019-07-16 |
CN110020721B true CN110020721B (zh) | 2020-12-18 |
Family
ID=67190820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910281117.4A Active CN110020721B (zh) | 2019-04-09 | 2019-04-09 | 一种基于参数压缩的目标检测深度学习网络优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110020721B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569967A (zh) * | 2019-09-11 | 2019-12-13 | 山东浪潮人工智能研究院有限公司 | 一种基于算术编码的神经网络模型压缩加密方法及系统 |
CN110662069A (zh) * | 2019-09-20 | 2020-01-07 | 中国科学院自动化研究所南京人工智能芯片创新研究院 | 一种基于快速gan的图像生成方法 |
CN111414994B (zh) * | 2020-03-03 | 2022-07-12 | 哈尔滨工业大学 | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 |
CN111291720B (zh) * | 2020-03-10 | 2020-12-08 | 嘉兴瑞知环保科技有限公司 | 基于云计算网络的建筑物广告辨识系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1741016A (zh) * | 2004-08-27 | 2006-03-01 | 雅斯拓(北京)智能卡科技有限公司 | 智能卡数据与存储在外部服务器中的数据的有效同步 |
EP1936887A2 (en) * | 2006-12-19 | 2008-06-25 | Innovative Sonic Limited | Method of improving continuous packet connectivity in a wireless communications system and related apparatus |
CN107229967A (zh) * | 2016-08-22 | 2017-10-03 | 北京深鉴智能科技有限公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN107368891A (zh) * | 2017-05-27 | 2017-11-21 | 深圳市深网视界科技有限公司 | 一种深度学习模型的压缩方法和装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8966457B2 (en) * | 2011-11-15 | 2015-02-24 | Global Supercomputing Corporation | Method and system for converting a single-threaded software program into an application-specific supercomputer |
US10810484B2 (en) * | 2016-08-12 | 2020-10-20 | Xilinx, Inc. | Hardware accelerator for compressed GRU on FPGA |
CN108269245A (zh) * | 2018-01-26 | 2018-07-10 | 深圳市唯特视科技有限公司 | 一种基于新型生成对抗网络的眼部图像修复方法 |
-
2019
- 2019-04-09 CN CN201910281117.4A patent/CN110020721B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1741016A (zh) * | 2004-08-27 | 2006-03-01 | 雅斯拓(北京)智能卡科技有限公司 | 智能卡数据与存储在外部服务器中的数据的有效同步 |
EP1936887A2 (en) * | 2006-12-19 | 2008-06-25 | Innovative Sonic Limited | Method of improving continuous packet connectivity in a wireless communications system and related apparatus |
CN107229967A (zh) * | 2016-08-22 | 2017-10-03 | 北京深鉴智能科技有限公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN107368891A (zh) * | 2017-05-27 | 2017-11-21 | 深圳市深网视界科技有限公司 | 一种深度学习模型的压缩方法和装置 |
Non-Patent Citations (5)
Title |
---|
Camila Gonz'alez等.Re-Training Deep Neural Networks to Facilitate Boolean Concept Extraction.《International Conference on Discovery Science》.2017,第1-16页. * |
DEEP COMPRESSION: COMPRESSING DEEP NEURAL NETWORKS WITH PRUNING, TRAINED QUANTIZATION AND HUFFMAN CODING;Song Han等;《ICLR 2016》;20161231;第1-14页 * |
Scalpel: Customizing DNN Pruning to the Underlying Hardware Parallelism;Jiecao Yu等;《2017 ACM/IEEE 44th Annual International Symposium on Computer Architecture(ISCA)》;20171214;第548-560页 * |
一种新的基于递归分解的图可达性查询算法;范时平等;《计算机应用研究》;20141231;第31卷(第12期);第3591-3598页 * |
硬件加速神经网络总数;陈桂林等;《计算机研究与发展》;20190129;第56卷(第2期);第240-253页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110020721A (zh) | 2019-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110020721B (zh) | 一种基于参数压缩的目标检测深度学习网络优化方法 | |
CN108304928A (zh) | 基于改进聚类的深度神经网络的压缩方法 | |
CN111832719A (zh) | 一种定点量化的卷积神经网络加速器计算电路 | |
JP7006966B2 (ja) | ベクトル量子化の混合に基づく符号化方法及びこれを用いた最近傍探索(nns)方法 | |
CN113269312B (zh) | 一种联合量化与剪枝搜索的模型压缩方法及其系统 | |
CN114970853A (zh) | 一种跨范围量化的卷积神经网络压缩方法 | |
CN113741858B (zh) | 存内乘加计算方法、装置、芯片和计算设备 | |
CN109523016B (zh) | 面向嵌入式系统的多值量化深度神经网络压缩方法及系统 | |
Fan et al. | HFPQ: deep neural network compression by hardware-friendly pruning-quantization | |
CN110647990A (zh) | 基于灰色关联分析的深度卷积神经网络模型的裁剪方法 | |
Marchisio et al. | Q-capsnets: A specialized framework for quantizing capsule networks | |
CN113610227A (zh) | 一种高效的深度卷积神经网络剪枝方法 | |
Sun et al. | Effective and fast: A novel sequential single path search for mixed-precision quantization | |
Horng et al. | The codebook design of image vector quantization based on the firefly algorithm | |
Qi et al. | Learning low resource consumption cnn through pruning and quantization | |
CN116743182B (zh) | 一种数据无损压缩方法 | |
WO2023246700A1 (zh) | 一种点云属性编码方法、点云属性解码方法及存储介质 | |
CN113076663A (zh) | 一种动态混合精度模型构建方法及系统 | |
CN115622571B (zh) | 一种基于数据处理的雷达目标识别方法 | |
Sun et al. | Efficient vector quantization using genetic algorithm | |
CN113177627B (zh) | 优化系统、重新训练系统及其方法及处理器和可读介质 | |
CN114492795A (zh) | 深度卷积神经网络压缩方法、计算机装置及存储介质 | |
CN110674335B (zh) | 一种基于多生成多对抗的哈希码与图像双向转换方法 | |
CN112800268B (zh) | 图像视觉特征的量化与近似最近邻搜索方法 | |
Horng et al. | The artificial bee colony algorithm for vector quantization in image compression |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |