CN109766993A - 一种适合硬件的卷积神经网络压缩方法 - Google Patents
一种适合硬件的卷积神经网络压缩方法 Download PDFInfo
- Publication number
- CN109766993A CN109766993A CN201811521955.6A CN201811521955A CN109766993A CN 109766993 A CN109766993 A CN 109766993A CN 201811521955 A CN201811521955 A CN 201811521955A CN 109766993 A CN109766993 A CN 109766993A
- Authority
- CN
- China
- Prior art keywords
- compression method
- convolutional neural
- training
- fpga
- hardware
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000006835 compression Effects 0.000 title claims abstract description 17
- 238000007906 compression Methods 0.000 title claims abstract description 17
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 17
- 230000006870 function Effects 0.000 claims abstract description 17
- 238000012549 training Methods 0.000 claims abstract description 16
- 238000012360 testing method Methods 0.000 claims abstract description 13
- 238000004364 calculation method Methods 0.000 claims abstract description 6
- 238000013135 deep learning Methods 0.000 claims abstract description 6
- 238000013136 deep learning model Methods 0.000 claims abstract description 4
- 239000011159 matrix material Substances 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 3
- 238000013528 artificial neural network Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 5
- 238000013461 design Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本发明提供一种适合硬件的卷积神经网络压缩方法,包括如下步骤:S1)采用参数全为3bit的All Conv Net卷积网络结构在数据集上训练和测试;S2)设计反向传播函数计算梯度;S3)针对新的计算方法,设计FPGA的卷积阵列;S4)在深度学习框架下编写深度学习模型,并进行模型训练和测试,存储训练后的模型;S5)在python上记录模型训练的accuracy和loss。本发明通过将卷积网络中的参数都用3bit的特殊值代替,同时设计新的反向传播函数以避免在参数替换过程中造成梯度消失,从而实现适用于FPGA、减少FPGA中DSP资源以及参数存储空间的卷积神经网络压缩方法。
Description
技术领域
本发明涉及卷积神经网络技术领域,具体涉及一种适合硬件的卷积神经网络压缩方法。
背景技术
随着深度学习的发展,各种卷积神经网络的参数越来越庞大。传统卷积网络的训练和测试都是在PC上进行的,训练过程中会获得庞大的参数量,且在测试过程中需要用到这些参数并进行大量复杂的运算,庞大的参数量及运算使得这种卷积网络不能很好地移植到移动设备上。
FPGA(现场可编程门阵列)由于其并行计算的优势,是一种很好的计算卷积神经网络的硬件设备,但是也受限于卷积网络的参数量。针对上述问题,急需一种可压缩卷积网络参数量的方法,以保证在硬件(FPGA)上计算卷积网络。
发明内容
本发明的目的是提供一种适用于FPGA、减少FPGA中DSP资源以及参数存储空间的卷积神经网络压缩方法。
为了达到上述目的,本发明通过以下技术方案来实现:
一种适合硬件的卷积神经网络压缩方法,包括如下步骤:
S1)采用参数全为3bit的All Conv Net卷积网络结构在数据集上训练和测试;
S2)设计反向传播函数计算梯度
xk=relu(wk·xk-1+bk),其中,xk为第k层的输入,wk为第k层的权值矩阵,relu()为RELU激活函数,bk为偏置项;
S3)针对步骤S2)的计算方法,设计FPGA的卷积阵列;
S4)在深度学习框架下编写深度学习模型,并进行模型训练和测试,存储训练后的模型;
S5)在python上记录模型训练的accuracy和loss。
进一步地,在步骤S2)中,存储参数时,对权值矩阵进行3bit编码。
进一步地,在步骤S2)中,对权值矩阵中每个权值扩展权值精度,即用0或1表示是否用到此权值,然后对所有为1的权值相加,可做到3bit到7bit变精度的权值。
进一步地,在步骤S2)中,引入Batch Normalization后,偏置项bk为冗余项,即xk=relu(BN(wk·xk-1))。
本发明与现有技术相比,具有以下优点:
本发明一种适合硬件的卷积神经网络压缩方法,通过将卷积网络中的参数都用3bit的特殊值代替,同时设计新的反向传播函数以避免在参数替换过程中造成梯度消失,从而实现适用于FPGA、减少FPGA中DSP资源以及参数存储空间的卷积神经网络压缩方法。本发明的卷积神经网络压缩方法,在MNIST、SVHN、Cifar10、Cifar100四个数据集上测试准确率都较高,以及对比FPGA上计算速度有所提升,资源使用率也有所下降。
附图说明
图1是本发明一种适合硬件的卷积神经网络压缩方法的流程示意图。
图2是现有技术的卷积阵列示意图。
图3是本发明一种适合硬件的卷积神经网络压缩方法的FPGA卷积阵列示意图。
具体实施方式
下面结合附图,对本发明的实施例作进一步详细的描述。
一种适合硬件的卷积神经网络压缩方法,如图1所示,包括如下步骤:
S1)采用参数全为3bit的All Conv Net卷积网络结构在数据集上训练,网络结构如下:
S2)设计反向传播函数计算梯度
反向传播函数的设计过程如下:
xk=relu(wk·xk-1+bk);其中,xk为第k层的输入,wk为第k层的权值矩阵,relu()为RELU激活函数,bk为偏置项。
引入Batch Normalization后,偏置项bk为冗余项,即xk=relu(BN(wk·xk-1))。
若想将网络中的权值压缩到特殊的3bit,则需要用到特殊的阶梯函数,即
令
则m个样本的mini-batch的损失函数为
梯度为
其中导致梯度消失,无法用梯度下降算法来训练网络;
然后考虑构造新的函数
这个函数中隐含着损失函数中的正则项,即
此时,
梯度不再消失,仍然可以适用梯度下降算法来更新权值;
其中α为学习率。
虽然权值无法一步压缩到特殊值上,但是经过网络训练的若干步后
在步骤S2)中获得的新的反向传播函数为用于反向传播计算梯度;在存储参数时,对权值进行编码,用3bit表示如下:
权值精度也可改变,进行扩展。用0或1表示是否用到此权值,然后对所有为1的权值相加,即可做到从3bit到7bit变精度的权值。
例如,011000表示:
0*(-1/2)+1*(-1/4)+1*(-1/8)+0*(0)+0*(1/8)+0*(1/4)+0*(1/2)=-0.375。
步骤S2)的计算梯度只用于卷积网络结构在数据集上的训练,训练完成后再进行卷积网络结构在数据集上的测试。
S3)针对步骤S2)的计算方法,设计FPGA的卷积阵列。
如图2所示为现有技术的卷积阵列示意图,如图3所示为本发明的FPGA卷积阵列设计示意图。如图2、3所示,加号代表加法器,乘法代表乘法器,箭头为移位操作,相比较可得,本发明将现有技术的乘法器改为位移操作,减少了DSP的使用,能更大限度地提高并行度,从而使卷积网络的计算速度大大提高。
S4)在深度学习框架下编写深度学习模型,并进行模型训练和测试,存储训练后的模型。深度学习框架下的伪代码如下:
S5)在python上记录模型训练的accuracy和loss。
本发明的卷积神经网络压缩方法,在MNIST、SVHN、Cifar10、Cifar100四个数据集上测试准确率都较高,以及对比FPGA上计算速度有所提升,资源使用率也有所下降。具体测试结果如下:
从上述测试结果可以看出,本发明模型的参数是最少的,同时分类的误差也较低。
以上所述仅是本发明优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。
Claims (4)
1.一种适合硬件的卷积神经网络压缩方法,其特征在于包括如下步骤:
S1)采用参数全为3bit的All Conv Net卷积网络结构在数据集上训练和测试;
S2)设计反向传播函数计算梯度
xk=relu(wk·xk-1+bk),其中,xk为第k层的输入,wk为第k层的权值矩阵,relu()为RELU激活函数,bk为偏置项;
S3)针对步骤S2)的计算方法,设计FPGA的卷积阵列;
S4)在深度学习框架下编写深度学习模型,并进行模型训练和测试,存储训练后的模型;
S5)在python上记录模型训练的accuracy和loss。
2.根据权利要求1所述的一种适合硬件的卷积神经网络压缩方法,其特征在于:在步骤S2)中,存储参数时,对权值矩阵进行3bit编码。
3.根据权利要求2所述的一种适合硬件的卷积神经网络压缩方法,其特征在于:在步骤S2)中,对权值矩阵中每个权值扩展权值精度,即用0或1表示是否用到此权值,然后对所有为1的权值相加,可做到3bit到7bit变精度的权值。
4.根据权利要求1所述的一种适合硬件的卷积神经网络压缩方法,其特征在于:在步骤S2)中,引入Batch Normalization后,偏置项bk为冗余项,即xk=relu(BN(wk·xk-1))。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521955.6A CN109766993B (zh) | 2018-12-13 | 2018-12-13 | 一种适合硬件的卷积神经网络压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811521955.6A CN109766993B (zh) | 2018-12-13 | 2018-12-13 | 一种适合硬件的卷积神经网络压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109766993A true CN109766993A (zh) | 2019-05-17 |
CN109766993B CN109766993B (zh) | 2020-12-18 |
Family
ID=66450620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811521955.6A Active CN109766993B (zh) | 2018-12-13 | 2018-12-13 | 一种适合硬件的卷积神经网络压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109766993B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362437A (zh) * | 2019-07-16 | 2019-10-22 | 张家港钛思科技有限公司 | 基于深度学习的嵌入式设备缺陷追踪的自动化方法 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960243A (zh) * | 2017-03-06 | 2017-07-18 | 中南大学 | 一种改进卷积神经网络结构的方法 |
CN107004157A (zh) * | 2015-01-22 | 2017-08-01 | 高通股份有限公司 | 模型压缩和微调 |
CN107341518A (zh) * | 2017-07-07 | 2017-11-10 | 东华理工大学 | 一种基于卷积神经网络的图像分类方法 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107967515A (zh) * | 2016-10-19 | 2018-04-27 | 三星电子株式会社 | 用于神经网络量化的方法和设备 |
CN107977703A (zh) * | 2016-10-21 | 2018-05-01 | 辉达公司 | 用于修剪神经网络以实现资源有效推理的系统和方法 |
CN108171762A (zh) * | 2017-12-27 | 2018-06-15 | 河海大学常州校区 | 一种深度学习的压缩感知同类图像快速重构系统与方法 |
CN108229681A (zh) * | 2017-12-28 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种神经网络模型压缩方法、系统、装置及可读存储介质 |
CN108322221A (zh) * | 2017-01-18 | 2018-07-24 | 华南理工大学 | 一种用于深度卷积神经网络模型压缩的方法 |
WO2018171925A1 (en) * | 2017-03-22 | 2018-09-27 | International Business Machines Corporation | Decision-based data compression by means of deep learning |
CN108615036A (zh) * | 2018-05-09 | 2018-10-02 | 中国科学技术大学 | 一种基于卷积注意力网络的自然场景文本识别方法 |
CN108717680A (zh) * | 2018-03-22 | 2018-10-30 | 北京交通大学 | 基于全稠密连接网络的空域图像隐写分析方法 |
CN108764472A (zh) * | 2018-05-18 | 2018-11-06 | 南京信息工程大学 | 卷积神经网络分数阶误差反向传播方法 |
CN108765506A (zh) * | 2018-05-21 | 2018-11-06 | 上海交通大学 | 基于逐层网络二值化的压缩方法 |
CN108960415A (zh) * | 2017-05-23 | 2018-12-07 | 上海寒武纪信息科技有限公司 | 处理装置和处理系统 |
-
2018
- 2018-12-13 CN CN201811521955.6A patent/CN109766993B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107004157A (zh) * | 2015-01-22 | 2017-08-01 | 高通股份有限公司 | 模型压缩和微调 |
CN107967515A (zh) * | 2016-10-19 | 2018-04-27 | 三星电子株式会社 | 用于神经网络量化的方法和设备 |
CN107977703A (zh) * | 2016-10-21 | 2018-05-01 | 辉达公司 | 用于修剪神经网络以实现资源有效推理的系统和方法 |
CN108322221A (zh) * | 2017-01-18 | 2018-07-24 | 华南理工大学 | 一种用于深度卷积神经网络模型压缩的方法 |
CN106960243A (zh) * | 2017-03-06 | 2017-07-18 | 中南大学 | 一种改进卷积神经网络结构的方法 |
WO2018171925A1 (en) * | 2017-03-22 | 2018-09-27 | International Business Machines Corporation | Decision-based data compression by means of deep learning |
CN108960415A (zh) * | 2017-05-23 | 2018-12-07 | 上海寒武纪信息科技有限公司 | 处理装置和处理系统 |
CN107341518A (zh) * | 2017-07-07 | 2017-11-10 | 东华理工大学 | 一种基于卷积神经网络的图像分类方法 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN108171762A (zh) * | 2017-12-27 | 2018-06-15 | 河海大学常州校区 | 一种深度学习的压缩感知同类图像快速重构系统与方法 |
CN108229681A (zh) * | 2017-12-28 | 2018-06-29 | 郑州云海信息技术有限公司 | 一种神经网络模型压缩方法、系统、装置及可读存储介质 |
CN108717680A (zh) * | 2018-03-22 | 2018-10-30 | 北京交通大学 | 基于全稠密连接网络的空域图像隐写分析方法 |
CN108615036A (zh) * | 2018-05-09 | 2018-10-02 | 中国科学技术大学 | 一种基于卷积注意力网络的自然场景文本识别方法 |
CN108764472A (zh) * | 2018-05-18 | 2018-11-06 | 南京信息工程大学 | 卷积神经网络分数阶误差反向传播方法 |
CN108765506A (zh) * | 2018-05-21 | 2018-11-06 | 上海交通大学 | 基于逐层网络二值化的压缩方法 |
Non-Patent Citations (2)
Title |
---|
JUNGWOOK CHOI ET AL: "Bridging the Accuracy Gap for 2-bit Quantized Neural Networks (QNN)", 《ARXIV:1807.06964V1 [CS.CV]》 * |
SERGEY IOFFE ET AL: "Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift", 《ARXIV:1502.03167V3 [CS.LG]》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110362437A (zh) * | 2019-07-16 | 2019-10-22 | 张家港钛思科技有限公司 | 基于深度学习的嵌入式设备缺陷追踪的自动化方法 |
CN110362437B (zh) * | 2019-07-16 | 2023-07-07 | 张家港钛思科技有限公司 | 基于深度学习的嵌入式设备缺陷追踪的自动化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109766993B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Heittola et al. | Acoustic scene classification in dcase 2020 challenge: generalization across devices and low complexity solutions | |
CN110366734B (zh) | 优化神经网络架构 | |
US20170061279A1 (en) | Updating an artificial neural network using flexible fixed point representation | |
KR20180072562A (ko) | 인공 뉴럴 네트워크 클래스-기반 프루닝 | |
CN110210618A (zh) | 动态修剪深度神经网络权重和权重共享的压缩方法 | |
US20230196202A1 (en) | System and method for automatic building of learning machines using learning machines | |
CN110265002B (zh) | 语音识别方法、装置、计算机设备及计算机可读存储介质 | |
Goldstein et al. | Reliability evaluation of compressed deep learning models | |
CN113392973A (zh) | 一种基于fpga的ai芯片神经网络加速方法 | |
CN114462591A (zh) | 一种动态量化神经网络的推理方法 | |
CN109766993B (zh) | 一种适合硬件的卷积神经网络压缩方法 | |
Jia et al. | Federated domain adaptation for asr with full self-supervision | |
Huai et al. | Latency-constrained DNN architecture learning for edge systems using zerorized batch normalization | |
CN116431807B (zh) | 一种文本分类方法、装置、存储介质及电子装置 | |
US11604973B1 (en) | Replication of neural network layers | |
US20220405561A1 (en) | Electronic device and controlling method of electronic device | |
CN115759291B (zh) | 一种基于集成学习的空间非线性回归方法及系统 | |
CN116011338A (zh) | 一种基于自编码器和深度神经网络的全波形反演方法 | |
CN115392441A (zh) | 量化神经网络模型的片内适配方法、装置、设备及介质 | |
Li et al. | E-sparse: Boosting the large language model inference through entropy-based n: M sparsity | |
CN113554097B (zh) | 模型量化方法、装置、电子设备和存储介质 | |
CN117648964A (zh) | 模型压缩方法、装置以及相关设备 | |
CN115270002A (zh) | 一种基于知识蒸馏的物品推荐方法、电子设备及存储介质 | |
CN113875228B (zh) | 视频插帧方法及装置、计算机可读存储介质 | |
Ren et al. | Hardware implementation of KLMS algorithm using FPGA |
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 |