CN110110852A - 一种深度学习网络移植到fpag平台的方法 - Google Patents
一种深度学习网络移植到fpag平台的方法 Download PDFInfo
- Publication number
- CN110110852A CN110110852A CN201910400926.2A CN201910400926A CN110110852A CN 110110852 A CN110110852 A CN 110110852A CN 201910400926 A CN201910400926 A CN 201910400926A CN 110110852 A CN110110852 A CN 110110852A
- Authority
- CN
- China
- Prior art keywords
- value
- deep learning
- learning network
- transplanted
- platform
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7871—Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开了一种深度学习网络移植到FPAG平台的方法。本发明采用1bit的量化方案将原模型量化为二值深度学习模型,不仅将内存占用降低为原有的浮点型权值的1/32,而且由于其权值参数仅有二值状态,这样的二值运算可由逻辑门器件快速实现,在一定程度上可以大大缓解DSP资源不足的问题。
Description
技术领域
本发明涉及一种深度学习网络移植到FPAG平台的方法。
背景技术
自从2006年深度神经网络学习技术被提出,深度学习的巨大潜力就开始吸引着无数的研究人员和一线工程师不断挖掘深度学习的极限。在这十余年中,有一大批的优秀科研工作作者创造性地提出了一个又一个令人瞩目的深度学习模型,不断将深度学习的能力极限向前拓展。
然而,即使今天的深度学习领域已经涌现出如此多的优秀模型算法,甚至在很多传统观念认为机器不可能超过人类的领域,深度学习网络也展现了不输于人类的表现。但如何将它们大规模地应用到各行各业还始终困扰着最优秀的研发人员。这是由于深度学习模型通常都有着巨量的模型参数和复杂的网络结构,运用这样的模型进行推理需要大量的计算存储资源并且耗费大量的时间,在一些对实时性要求较高的场景无法方便地应用。
随着硬件制造水平不断提升,高性能的CPU、GPU、FPGA甚至ASIC芯片的出现在一定程度解决了应用平台计算存储资源不足的问题,但是如何从模型本身入手对模型进行精简和改进来降低对硬件的需求也是目前一个热门的研究方向。在这样的背景下,模型的量化压缩涌现出了大量的优秀解决方案,通过将32bit的模型参数量化到16bit、8bit乃至1bit大大降低了使用这些模型进行推理所需要的计算资源和存储资源。大量的研究和实践都表明,采用合适巧妙的量化方案和合适的平台能够使得原模型在精度损失不大的情况下,大大提高模型的推理速度,并且在功耗表现上也有着巨大的提升。
发明内容
本发明的目的是,提供一种二值深度学习网络的FPGA移植优化方法,能够针对需要加速或移植的网络进行二值量化并优化,对比通用处理器能够在同等功耗和精确度损失很小的情况下获得数据处理速度的大幅提升,得到更好地模型推理加速效。本发明采用1bit的量化方案将原模型量化为二值深度学习模型,不仅将内存占用降低为原有的浮点型权值的1/32,而且由于其权值参数仅有二值状态,这样的二值运算可由逻辑门器件快速实现,在一定程度上可以大大缓解DSP资源不足的问题。
本发明的技术方案是:
一种二值深度学习网络的FPGA移植和优化方法,包括以下步骤:
步骤1:对要移植的目标模型参数进行二值量化。具体量化方法是如附图2所示,对一个尚未训练的模型前向传播时先将浮点型参数量化成二值参数,然后与输入特征值相乘并加上偏置项,通过池化和归一化操作,再经过激活函数得到输出特征值;在反向传播时,使用Tanh函数的导函数代替Sign函数的导函数,从而避免梯度消失。如此反复,直至模型收敛。
步骤2:对卷积层和全连接层进行优化。具体操作为使用同或操作代替二值乘法,使用popcount算法代替累加操作,从而实现卷积运算。其中,popcount算法原理如下表1所示,分别将二值乘法得到的0和1存入两个不同的栈空间里,在二值乘法计算完毕后,栈空间的最大索引值N和P即表示着栈内存储的0或1的个数,通过式SUM=P-N即可计算出累加结果,也即卷积结果。
表1popcount算法栈空间示意
步骤3:池化层优化。具体操作是通过使用一个查找表实现的或门代替常规方法中用三个查找表构建的比较器,从而实现池化操作。
步骤4:批归一化及激活函数优化。具体操作是将激活函数和批归一化函数结合,结合后表示如下:
ak b=Sign(BatchNorm(ak,θk))
=Sign(γk(ak-μk)×ik+Bk)
式中ak为卷积操作提取的特征值,θk=(γk,μk,ik,Bk),γk为批归一化函数的缩放因子,μk为待归一化数据的均值,ik为方差的倒数,Bk为平移因子,ak b为经过批归一化函数和激活函数后的特征值。由于激活函数以0为阈值,当批归一化函数的输出值大于0时激活函数输出1,否则输出0(表示-1),且批归一化函数为一个单调递增函数,所以我们通过求解解下式:
BatchNorm(τk,θk)=0
即可计算结合后的复合函数的阈值τk:
我们只需比较输入值和阈值τk即可直接给出输出:若输入特征值ak大于阈值τk,则输出值为1,否则输出为0。相比于直接计算归一化函数和激活函数,优化后计算量大大减少。
步骤5:将经过量化和优化步骤的模型移植到FPGA目标平台进行推理应用。
本发明的有益效果为,本发明通过神经网络模型参数二值化步骤将要移植的目标模型参数量化为1bit,由于二值运算可以通过硬件逻辑单元快速实现而不用依赖DSP器件的制约,这一特性使得二值深度学习网络特别适合使用FPGA平台进行加速计算,也可以因此获得数据处理速度的大幅提升,在一定程度上可以大大缓解DSP资源不足的问题。
附图说明
图1为二值深度学习网络的FPGA移植和优化流程图;
图2为本发明实施例二值深度学习网络训练框图;
图3为本发明实施例二值深度学习网络加速系统软硬件协同架构框图;
图4为本发明实施例中二值VGG模型移植优化后在CIFAR-10数据集上的部分推理测试结果图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细的说明。
实施例
本例中的FPGA平台是指集成了查找表(LTU)、触发器(FF)、数字处理单元(DSP)、存储单元RAM及锁相环PLL,并采用AXI总线进行片上片下的数据传输的系统。本发明实施例以这样的系统对VGG模型二值量化和移植加速优化为例进行说明,但本发明并不限于此。
附图1为本发明实施例的二值深度学习网络的FPGA移植和优化方法流程图,本发明依照附图1的处理流程对VGG模型进行移植和优化。步骤如下:
A、对原VGG模型进行二值量化,本实施例将原VGG模型的32bit浮点型参数量化、训练为1bit定点型参数。
B、对卷积层和全连接层进行优化。
C、池化层优化。
D、批归一化及激活函数优化。
E、将量化后的二值VGG模型移植至目标平台上运行,分别在MNIST、SVHN、CIFAR-10三个数据集上进行测试。
移植后的网络在MNIST、SVHN、CIFAR-10三个数据集上的测试表现如下表2所示:
表2二值神经网络在不同数据集下的识别误差
本实施例在CIFAR-10数据集上的部分测试结果见附图4。
Claims (1)
1.一种深度学习网络移植到FPAG平台的方法,所述FPGA平台是指集成了查找表、触发器、数字处理单元、存储单元,并采用AXI总线进行片上片下数据传输的系统;其特征在于,所述方法包括以下步骤:
S1、选择要移植的深度学习网络模型,定义为目标模型,对目标模型的参数进行二值量化:将目标模型前向传播时使用二值权值量化,反向传播使用浮点数;所述二值权值量化的方法为:
其中,x表示输入的待量化的浮点数,xb表示浮点数二值量化结果;
S2、卷积层的实现:对输入的数据结合步骤S1量化后的模型,使用同或操作进行处理,并使用popcount算法计算累加结果,从而实现卷积运算;所述popcount算法的实现方法是,在FPAG的存储单元中划分两个栈空间,一个栈空间用于存入同或操作得到的0,定义最大索引为N;另一个栈空间用于存入同或操作得到的1,定义最大索引为P;在同或操作结束后,通过SUM=P-N计算出累加结果,也即卷积结果;
S3、池化层的实现:使用一个查找表实现的或门实现二值网络的池化操作;
S4、损失函数层的实现:将激活函数和批归一化函数结合,结合后表示如下
ak b=Sign(BatchNorm(ak,θk))
=Sign(γk(ak-μk)×ik+Bk)
式中ak为卷积操作提取的特征值,θk=(γk,μk,ik,Bk),γk为批归一化函数的缩放因子,μk为待归一化数据的均值,ik为方差的倒数,Bk为平移因子,ak b为经过批归一化函数和激活函数后的特征值;
再由下式,求得阈值τk:
将归一化函数和激活函数的计算定义为比较ak和τk的值:若ak小于τk,那么输出特征值为0,否则为1;
S5、根据上述步骤,将深度学习网络移植到FPGA对应的模块中,并使FPGA的数据输入和输出与深度学习网络的输入和输出对应,即在FPGA平台上实现深度学习网络的应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910400926.2A CN110110852B (zh) | 2019-05-15 | 2019-05-15 | 一种深度学习网络移植到fpag平台的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910400926.2A CN110110852B (zh) | 2019-05-15 | 2019-05-15 | 一种深度学习网络移植到fpag平台的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110110852A true CN110110852A (zh) | 2019-08-09 |
CN110110852B CN110110852B (zh) | 2023-04-07 |
Family
ID=67490108
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910400926.2A Active CN110110852B (zh) | 2019-05-15 | 2019-05-15 | 一种深度学习网络移植到fpag平台的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110110852B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110738241A (zh) * | 2019-09-24 | 2020-01-31 | 中山大学 | 一种基于神经网络的双目立体视觉匹配方法及其运算框架 |
CN111783974A (zh) * | 2020-08-12 | 2020-10-16 | 成都佳华物链云科技有限公司 | 模型构建及图像处理方法、装置、硬件平台及存储介质 |
CN112699384A (zh) * | 2020-12-11 | 2021-04-23 | 山东大学 | 基于fpga的全同态加密深度学习推理方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6183980B1 (ja) * | 2016-12-02 | 2017-08-23 | 国立大学法人東京工業大学 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
US20180046894A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Method for optimizing an artificial neural network (ann) |
US20180046903A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Deep processing unit (dpu) for implementing an artificial neural network (ann) |
WO2018140294A1 (en) * | 2017-01-25 | 2018-08-02 | Microsoft Technology Licensing, Llc | Neural network based on fixed-point operations |
CN108416318A (zh) * | 2018-03-22 | 2018-08-17 | 电子科技大学 | 基于数据增强的合成孔径雷达图像目标深度模型识别方法 |
JP2018132830A (ja) * | 2017-02-13 | 2018-08-23 | LeapMind株式会社 | ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法 |
WO2019059191A1 (ja) * | 2017-09-20 | 2019-03-28 | 国立大学法人東京工業大学 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
CN109657787A (zh) * | 2018-12-19 | 2019-04-19 | 电子科技大学 | 一种二值忆阻器的神经网络芯片 |
-
2019
- 2019-05-15 CN CN201910400926.2A patent/CN110110852B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180046894A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Method for optimizing an artificial neural network (ann) |
US20180046903A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Deep processing unit (dpu) for implementing an artificial neural network (ann) |
JP6183980B1 (ja) * | 2016-12-02 | 2017-08-23 | 国立大学法人東京工業大学 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
WO2018140294A1 (en) * | 2017-01-25 | 2018-08-02 | Microsoft Technology Licensing, Llc | Neural network based on fixed-point operations |
JP2018132830A (ja) * | 2017-02-13 | 2018-08-23 | LeapMind株式会社 | ニューラルネットワーク構築方法、ニューラルネットワーク装置及びニューラルネットワーク装置更新方法 |
WO2019059191A1 (ja) * | 2017-09-20 | 2019-03-28 | 国立大学法人東京工業大学 | ニューラルネットワーク回路装置、ニューラルネットワーク、ニューラルネットワーク処理方法およびニューラルネットワークの実行プログラム |
CN108416318A (zh) * | 2018-03-22 | 2018-08-17 | 电子科技大学 | 基于数据增强的合成孔径雷达图像目标深度模型识别方法 |
CN109657787A (zh) * | 2018-12-19 | 2019-04-19 | 电子科技大学 | 一种二值忆阻器的神经网络芯片 |
Non-Patent Citations (3)
Title |
---|
HARUYOSHI YONEKAWA: ""On-chip memory based binarized convolutional deep neural network applying batch normalization free technique on an FPGA"" * |
仇越: ""基于FPGA的卷积神经网络加速方法研究及实现"" * |
李嘉辉;蔡述庭;陈学松;熊晓明;: "基于FPGA的卷积神经网络的实现" * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110738241A (zh) * | 2019-09-24 | 2020-01-31 | 中山大学 | 一种基于神经网络的双目立体视觉匹配方法及其运算框架 |
CN111783974A (zh) * | 2020-08-12 | 2020-10-16 | 成都佳华物链云科技有限公司 | 模型构建及图像处理方法、装置、硬件平台及存储介质 |
CN112699384A (zh) * | 2020-12-11 | 2021-04-23 | 山东大学 | 基于fpga的全同态加密深度学习推理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110110852B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106250939B (zh) | 基于fpga+arm多层卷积神经网络的手写体字符识别方法 | |
Yap et al. | Fixed point implementation of tiny-yolo-v2 using opencl on fpga | |
CN110110852A (zh) | 一种深度学习网络移植到fpag平台的方法 | |
Duan et al. | A combined short-term wind speed forecasting model based on CNN–RNN and linear regression optimization considering error | |
CN107644254A (zh) | 一种卷积神经网络权重参数量化训练方法及系统 | |
WO2020238237A1 (zh) | 一种基于幂指数量化的神经网络压缩方法 | |
CN111242287A (zh) | 一种基于通道l1范数剪枝的神经网络压缩方法 | |
CN107292458A (zh) | 一种应用于神经网络芯片的预测方法和预测装置 | |
CN109934336A (zh) | 基于最优结构搜索的神经网络动态加速平台设计方法及神经网络动态加速平台 | |
CN115204035A (zh) | 基于多尺度时序数据融合模型的发电机组运行参数预测方法、装置及存储介质 | |
CN109472352A (zh) | 一种基于特征图统计特征的深度神经网络模型裁剪方法 | |
CN108985444A (zh) | 一种基于节点抑制的卷积神经网络剪枝方法 | |
Fan et al. | HFPQ: deep neural network compression by hardware-friendly pruning-quantization | |
WO2022241932A1 (zh) | 一种基于非侵入式注意力预处理过程与BiLSTM模型的预测方法 | |
Wang et al. | Selective convolutional features based generalized-mean pooling for fine-grained image retrieval | |
CN113971457B (zh) | 一种神经网络的计算性能优化方法及系统 | |
CN109685208A (zh) | 一种用于神经网络处理器数据稀梳化加速的方法及装置 | |
Chung et al. | Using quantization-aware training technique with post-training fine-tuning quantization to implement a mobilenet hardware accelerator | |
CN112001492B (zh) | 关于二值权重DenseNet模型的混合流水式加速架构及加速方法 | |
Kim et al. | Fast convolution algorithm for convolutional neural networks | |
Lu et al. | A distributed neural network training method based on hybrid gradient computing | |
CN113487012A (zh) | 一种面向fpga的深度卷积神经网络加速器及设计方法 | |
CN111738432A (zh) | 一种支持自适应并行计算的神经网络处理电路 | |
CN110807479A (zh) | 一种基于Kmeans算法的神经网络卷积计算加速方法 | |
Zhang et al. | Application and Implementation of Convolutional Neural Network Accelerator Based on FPGA in Environmental Sound Classification |
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 |