CN109766993B - 一种适合硬件的卷积神经网络压缩方法 - Google Patents

一种适合硬件的卷积神经网络压缩方法 Download PDF

Info

Publication number
CN109766993B
CN109766993B CN201811521955.6A CN201811521955A CN109766993B CN 109766993 B CN109766993 B CN 109766993B CN 201811521955 A CN201811521955 A CN 201811521955A CN 109766993 B CN109766993 B CN 109766993B
Authority
CN
China
Prior art keywords
weight
neural network
compression method
gradient
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.)
Active
Application number
CN201811521955.6A
Other languages
English (en)
Other versions
CN109766993A (zh
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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201811521955.6A priority Critical patent/CN109766993B/zh
Publication of CN109766993A publication Critical patent/CN109766993A/zh
Application granted granted Critical
Publication of CN109766993B publication Critical patent/CN109766993B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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),
Figure GDA0002721341390000011
其中,
Figure GDA0002721341390000021
xk为第k层的输入,wk为第k层的权值矩阵,relu()为RELU激活函数,bk为偏置项;
Figure GDA0002721341390000022
则m个样本的mini-batch的损失函数为
Figure GDA0002721341390000023
梯度为
Figure GDA0002721341390000024
其中
Figure GDA0002721341390000025
导致梯度消失,无法用梯度下降算法来训练网络;
然后考虑构造新的函数
Figure GDA0002721341390000026
这个函数中隐含着损失函数中的正则项,即
Figure GDA0002721341390000027
此时,
Figure GDA0002721341390000028
Figure GDA0002721341390000029
梯度不再消失,仍然可以适用梯度下降算法来更新权值;
Figure GDA0002721341390000031
其中α为学习率,
虽然权值无法一步压缩到特殊值上,但是经过网络训练的若干步后
Figure GDA0002721341390000032
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卷积网络结构在数据集上训练,网络结构如下:
Figure GDA0002721341390000041
S2)设计反向传播函数计算梯度
反向传播函数的设计过程如下:
xk=relu(wk·xk-1+bk);其中,xk为第k层的输入,wk为第k层的权值矩阵,relu()为RELU激活函数,bk为偏置项。
引入Batch Normalization后,偏置项bk为冗余项,即xk=relu(BN(wk·xk-1))。
若想将网络中的权值压缩到特殊的3bit,则需要用到特殊的阶梯函数,即
Figure GDA0002721341390000051
Figure GDA0002721341390000052
则m个样本的mini-batch的损失函数为
Figure GDA0002721341390000053
梯度为
Figure GDA0002721341390000054
其中
Figure GDA0002721341390000055
导致梯度消失,无法用梯度下降算法来训练网络;
然后考虑构造新的函数
Figure GDA0002721341390000056
这个函数中隐含着损失函数中的正则项,即
Figure GDA0002721341390000057
此时,
Figure GDA0002721341390000058
Figure GDA0002721341390000061
梯度不再消失,仍然可以适用梯度下降算法来更新权值;
Figure GDA0002721341390000062
其中α为学习率。
虽然权值无法一步压缩到特殊值上,但是经过网络训练的若干步后
Figure GDA0002721341390000063
在步骤S2)中获得的新的反向传播函数为
Figure GDA0002721341390000064
用于反向传播计算梯度;在存储参数时,对权值进行编码,用3bit表示如下:
Figure GDA0002721341390000065
权值精度也可改变,进行扩展。用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)在深度学习框架下编写深度学习模型,并进行模型训练和测试,存储训练后的模型。深度学习框架下的伪代码如下:
Figure GDA0002721341390000066
Figure GDA0002721341390000071
S5)在python上记录模型训练的accuracy和loss。
本发明的卷积神经网络压缩方法,在MNIST、SVHN、Cifar10、Cifar100四个数据集上测试准确率都较高,以及对比FPGA上计算速度有所提升,资源使用率也有所下降。具体测试结果如下:
Figure GDA0002721341390000072
从上述测试结果可以看出,本发明模型的参数是最少的,同时分类的误差也较低。
以上所述仅是本发明优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。

Claims (4)

1.一种适合硬件的卷积神经网络压缩方法,其特征在于包括如下步骤:
S1)采用参数全为3bit的All Conv Net卷积网络结构在数据集上训练和测试;
S2)设计反向传播函数计算梯度
xk=relu(wk·xk-1+bk),
Figure FDA0002721341380000011
其中,
Figure FDA0002721341380000012
xk为第k层的输入,wk为第k层的权值矩阵,relu()为RELU激活函数,bk为偏置项;
Figure FDA0002721341380000013
则m个样本的mini-batch的损失函数为
Figure FDA0002721341380000014
梯度为
Figure FDA0002721341380000015
其中
Figure FDA0002721341380000016
导致梯度消失,无法用梯度下降算法来训练网络;
然后考虑构造新的函数
Figure FDA0002721341380000017
这个函数中隐含着损失函数中的正则项,即
Figure FDA0002721341380000021
此时,
Figure FDA0002721341380000022
Figure FDA0002721341380000023
梯度不再消失,仍然可以适用梯度下降算法来更新权值;
Figure FDA0002721341380000024
其中α为学习率,
虽然权值无法一步压缩到特殊值上,但是经过网络训练的若干步后
Figure FDA0002721341380000025
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))。
CN201811521955.6A 2018-12-13 2018-12-13 一种适合硬件的卷积神经网络压缩方法 Active CN109766993B (zh)

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 CN109766993A (zh) 2019-05-17
CN109766993B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110362437B (zh) * 2019-07-16 2023-07-07 张家港钛思科技有限公司 基于深度学习的嵌入式设备缺陷追踪的自动化方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107004157A (zh) * 2015-01-22 2017-08-01 高通股份有限公司 模型压缩和微调
CN107341518A (zh) * 2017-07-07 2017-11-10 东华理工大学 一种基于卷积神经网络的图像分类方法
CN107967515A (zh) * 2016-10-19 2018-04-27 三星电子株式会社 用于神经网络量化的方法和设备
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
CN108765506A (zh) * 2018-05-21 2018-11-06 上海交通大学 基于逐层网络二值化的压缩方法
CN108960415A (zh) * 2017-05-23 2018-12-07 上海寒武纪信息科技有限公司 处理装置和处理系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107977703A (zh) * 2016-10-21 2018-05-01 辉达公司 用于修剪神经网络以实现资源有效推理的系统和方法
CN106960243A (zh) * 2017-03-06 2017-07-18 中南大学 一种改进卷积神经网络结构的方法
CN107480770B (zh) * 2017-07-27 2020-07-28 中国科学院自动化研究所 可调节量化位宽的神经网络量化与压缩的方法及装置
CN108717680B (zh) * 2018-03-22 2020-12-08 北京交通大学 基于全稠密连接网络的空域图像隐写分析方法
CN108615036B (zh) * 2018-05-09 2021-10-01 中国科学技术大学 一种基于卷积注意力网络的自然场景文本识别方法
CN108764472A (zh) * 2018-05-18 2018-11-06 南京信息工程大学 卷积神经网络分数阶误差反向传播方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107004157A (zh) * 2015-01-22 2017-08-01 高通股份有限公司 模型压缩和微调
CN107967515A (zh) * 2016-10-19 2018-04-27 三星电子株式会社 用于神经网络量化的方法和设备
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
CN108960415A (zh) * 2017-05-23 2018-12-07 上海寒武纪信息科技有限公司 处理装置和处理系统
CN107341518A (zh) * 2017-07-07 2017-11-10 东华理工大学 一种基于卷积神经网络的图像分类方法
CN108171762A (zh) * 2017-12-27 2018-06-15 河海大学常州校区 一种深度学习的压缩感知同类图像快速重构系统与方法
CN108229681A (zh) * 2017-12-28 2018-06-29 郑州云海信息技术有限公司 一种神经网络模型压缩方法、系统、装置及可读存储介质
CN108765506A (zh) * 2018-05-21 2018-11-06 上海交通大学 基于逐层网络二值化的压缩方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift;Sergey Ioffe et al;《arXiv:1502.03167v3 [cs.LG]》;20150302;第1-11页 *
Bridging the Accuracy Gap for 2-bit Quantized Neural Networks (QNN);Jungwook Choi et al;《arXiv:1807.06964v1 [cs.CV]》;20180717;第1-10页 *

Also Published As

Publication number Publication date
CN109766993A (zh) 2019-05-17

Similar Documents

Publication Publication Date Title
CN110366734B (zh) 优化神经网络架构
US10656962B2 (en) Accelerate deep neural network in an FPGA
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
Przymus et al. Dynamic compression strategy for time series database using GPU
CN108038149B (zh) 一种温度场数据重构方法
CN109766993B (zh) 一种适合硬件的卷积神经网络压缩方法
CN113392973A (zh) 一种基于fpga的ai芯片神经网络加速方法
CN112598123A (zh) 神经网络的权值的量化方法、量化装置及存储介质
CN101467459B (zh) 信号的矢量量化字典生成方法、编解码器及编解码方法
CN116560968A (zh) 一种基于机器学习的仿真计算时间预测方法、系统及设备
CN111598227A (zh) 数据处理方法、装置、电子设备及计算机可读存储介质
CN111653261A (zh) 语音合成方法、装置、可读存储介质及电子设备
CN115392441A (zh) 量化神经网络模型的片内适配方法、装置、设备及介质
Ren et al. Hardware implementation of KLMS algorithm using FPGA
US20230229895A1 (en) Automatic Selection of Quantization and Filter Pruning Optimization Under Energy Constraints
KR20230157339A (ko) 활성화 함수들의 효율적인 압축
CN114580649A (zh) 消除量子泡利噪声的方法及装置、电子设备和介质
CN113554097A (zh) 模型量化方法、装置、电子设备和存储介质
CN111539519A (zh) 一种面向海量数据的卷积神经网络训练引擎方法及系统
CN111582456A (zh) 用于生成网络模型信息的方法、装置、设备和介质
CN113111254B (zh) 推荐模型的训练方法、拟合方法、装置和电子设备
Occil Randomization and Sampling Methods

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