CN112633498A - 基于数据流的卷积神经网络权重梯度优化方法 - Google Patents
基于数据流的卷积神经网络权重梯度优化方法 Download PDFInfo
- Publication number
- CN112633498A CN112633498A CN202011532343.4A CN202011532343A CN112633498A CN 112633498 A CN112633498 A CN 112633498A CN 202011532343 A CN202011532343 A CN 202011532343A CN 112633498 A CN112633498 A CN 112633498A
- Authority
- CN
- China
- Prior art keywords
- multiplied
- weight gradient
- neural network
- data
- convolutional neural
- 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
Images
Classifications
-
- 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/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- 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
-
- 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
本发明公开了一种基于数据流的卷积神经网络权重梯度优化方法,为卷积神经网络权重梯度优化提供一种可配置的数据流架构设计,使其可以支持权重梯度计算中的不同尺寸的卷积运算,实现并行度是串行输入的K×K(卷积核大小)倍,提升整个卷积神经网络训练的性能,解决了权重梯度计算中存在的不同尺寸卷积运算难以实现的问题。与现有技术相比,本发明1)加速效果明显:对于权重梯度计算来说,其并行度较原有的串行方案提升了K×K的并行度,显著地降低数据输入的传输时间,从而达到了加速整个网络训练的目的,并且较通用矩阵乘的方案可以减少1‑1/(K×K)%的输入存储;2)并且同时满足适用性和通用性。
Description
技术领域
本发明属于信息技术领域、卷积神经网络训练硬件加速领域,尤其涉及基于低功耗、高性能的卷积神经网络训练。
背景技术
卷积神经网络(Convolutional Neural network,CNN)作为一种前馈神经网络,被广泛应用于计算机视觉、自然语言处理等各大领域。随着CNN的网络规模、训练数据集日益增大,CNN的训练需要巨大的算能、存储空间和功耗。CNN的训练包含卷积模块的正向传播、反向传播的计算。目前学业界和工业界对正向传播的硬件实现已经提出了诸多方案,但是欠缺对反向传播的硬件实现。反向传播包含对输入图像梯度的计算和对权重梯度的计算,其计算量是正向传播的两倍。加速反向传播对提升卷积神经网络训练十分必要。其中对输入图像梯度的计算与正向传播类似,不同之处在于额外增加了旋转180°操作且累加维度不同。因此通过数据预处理的方式对卷积核进行维度转换,将输出图像梯度与卷积核输入正向传播的数据流模块,即可实现对输入图像梯度的计算。然而对权重梯度的计算涉及到不同尺寸卷积的运算,给硬件设计造成了一定的难度,难以在速度和资源上权衡,这成为硬件实现卷积神经网络训练加速的主要瓶颈。
权重梯度计算公式如下:
式中:dWij(x,y)为第j个卷积核中第i个通道的(x,y)处的权重梯度;Fi(x+p,y+q)表示为第i张输入图像在(x+p,y+q)处特征值;dOj(p,q)表示为第j个输出图像在(p,q)处的特征值梯度;OH、OW表示为输出图像的长宽。
分析上式可知,权重梯度的计算涉及到了输入图像与输出图像梯度之间不同尺寸卷积的计算,目前针对这类权重梯度计算的方式主要有两种。以单个卷积K=3为例:
一种是通过串行读取输入图像的方式,取出对应的矩阵与输出图像梯度矩阵进行运算,共重复K×K次。如图2所示,卷积核的第一个数由左一的矩阵与右侧输出图像梯度进行卷积运算获得。第二个数由左二的矩阵与右侧输出图像梯度进行卷积运算获得,依次类推。这种方案存在两个缺点:一是需要重复读取K×K次,二是求取对应梯度时,不参与运算的数据读取耗费时间。
另一种则是在利用矩阵通用乘的方法进行加速。其主要通过im2col操作,根据卷积窗口的大小,将图像转化成矩阵,通过对矩阵乘进行并行加速,获得整体训练的加速。这种方式耗费大量的存储资源和传输时间。
为进一步提升计算性能和降低存储资源,获得更优性能,提出一种针对权重梯度的优化方案非常重要。
发明内容
本发明旨在提出了一种基于数据流的卷积神经网络权重梯度优化方法,为卷积神经网络权重梯度优化提供一种可配置的数据流架构设计,使其可以支持权重梯度计算中的不同尺寸的卷积运算,实现并行度是串行输入的K×K(卷积核大小)倍,提升整个卷积神经网络训练的性能,解决了权重梯度计算中存在的不同尺寸卷积运算难以实现的问题。
本发明的基于数据流的卷积神经网络权重梯度优化方法,该方法具体包括如下步骤:
步骤1、将输入图像传输给行缓存模块与列缓存模块,拼接成(H-K+1)×(H-K+1)个K×K的卷积核大小进行周期性输出;其中的行缓存模块由K-1个FIFO构成,列缓存模块由移位寄存器构成;
步骤2、将输出图像梯度存入到片上存储(Block RAM,BRAM),每当输入图像拼接成一个K×K的移动窗口,从BRAM取出一个对应的数据,并复制成K×K份;
步骤3、将步骤1步拼接成的数据与步骤2取出的数据同时输入给K×K个乘法器单元进行计算,获取K×K个结果;
步骤4、将步骤3计算的结果输出给自相加模块;重复步骤3,将获得的结果与当前自相加模块的结果进行相加,直至算到最后一个滑动窗口,获得最终的结果;其中的自相加模块由K×K个加法器构成。
与现有技术相比,本发明能够达成以下有益效果:
1)加速效果明显:对于权重梯度计算来说,其并行度较原有的串行方案提升了K×K的并行度,且只需要读取一次输入图像,显著地降低数据输入的传输时间,从而达到了加速整个网络训练的目的,并且较通用矩阵乘的方案可以减少1-1/(K×K)%的输入存储;
2)适用性:可以与其他方向的并行度交叉如批方向并行度,通道方向并行度以及卷积核方向并行度,提升性能;
3)通用性:一方面能够适用于各种数据精度的设计方案,如低精度定点,单精度浮点;另一方面支持任意尺寸的权重梯度计算。
附图说明
图1是本发明的基于数据流方式的卷积神经网络权重梯度优化方法整体流程图;
图2是现有技术中的权重梯度计算模型示意图,(2a)现有技术的输入图像梯度矩阵,(2b)现有技术的输出图像梯度矩阵;
图3是本发明的基于数据流方式的卷积神经网络权重梯度优化方法的权重梯度优化模型示意图,(3a)本发明的输入图像梯度矩阵,(3b)本发明的输出图像梯度矩阵;
图4是本发明的基于数据流方式的卷积神经网络权重梯度优化方法的权重梯度数据流架构示意图;
图5是本发明的基于数据流方式的卷积神经网络权重梯度优化方法的输入缓存模块示意图;
图6是本发明的基于数据流方式的卷积神经网络权重梯度优化方法的乘法单元模块示意图;
图7是本发明的基于数据流方式的卷积神经网络权重梯度优化方法的自相加模块示意图。
具体实施方式
下面结合附图和实施例对本发明的技术方案进行详细说明。
本发明的一种基于数据流方式的卷积神经网络权重梯度优化计算方法对权重梯度进行优化。根据公式可知,输入图像与输出图像梯度具有固定差(K-1)。如图3所示,为本发明的一种基于数据流方式的卷积神经网络权重梯度优化计算方法的权重梯度优化模型示意图。该模型通过K×K的滑动窗口对输入图像进行滑动,将原来不固定的卷积尺寸改为固定尺寸K×K,可支持任意尺寸的权重梯度计算。具体计算方式如下:1)将第一个K×K的窗口覆盖的输入图像与输出图像梯度的第一个数进行同时运算;2)将第二个K×K的窗口覆盖的输入图像与输出图像梯度的第二个数进行同时运算;3)依次类推。最终将所有窗口的计算结果进行对应位置的相加,其结果与图2一致。这种方案的优点是只需读取一次,即可实现K×K倍的并行度,且不要耗费额外的存储资源。
如图4所示,是本发明的基于数据流方式的卷积神经网络权重梯度优化计算方法的权重梯度数据流架构示意图。参考卷积的正向传播,其硬件架构主要分为四个模块,行缓存模块、列缓存模块、乘法单元以及自相加模块。
具体分为以下几个步骤:
步骤1、将输入图像传输给行缓存模块与列缓存模块,拼接成(H-K+1)×(H-K+1)个K×K的卷积核大小进行周期性输出;
行缓存模块的主要功能是在行方向对数据进行拼接,拼接成K×1个数据输出。以K=3为例,行缓存结构主要由两个FIFO构成,首先向第一个FIFO写入输入图像对应通道的第一行数据;当第一行数据存入到第一个FIFO后,开始将第一个FIFO的第一行数据写入到第二个FIFO中,同时向第二个FIFO写入第二行数据;当第二行数据都存入到第一个FIFO中,第一行数据都存入到第二个FIFO中时,开始输出第一行、第二行和第三行数据,拼接成K×1个数据;
列缓存模块的主要功能是在列方向对数据进行拼接,将K×1数据拼接成K×K进行同时输出。列缓存模块主要由K行移位寄存器构成,通过移位寄存器对K行数据进行同时拼接,最终输出K×K个结果;
步骤2、将输出图像梯度存入到片上存储(Block RAM,BRAM),每当输入图像拼接成一个K×K的移动窗口,从BRAM取出一个对应的数据,并复制成K×K份;
步骤3、将步骤1拼接成的数据与步骤2取出的数据同时输入给K×K个乘法器单元进行计算,获取K×K个结果;
步骤4、将步骤3计算的结果输出给自相加模块;重复步骤3,将获得的结果与当前自相加模块的结果进行相加,直至算到最后一个滑动窗口,获得最终的结果。自相加模块由K×K个加法器构成。
上述优化方法执行结果表明:
当卷积核的尺寸为K,输入图像与输出图像梯度存在固定差(K-1);
将大尺寸的卷积计算转换为K×K尺寸的小单元运算,通过将小单元的运算结果进行累加,获得最终结果;
卷积运算中的通道方向、卷积核方向、批方向存在并行度交叉;
该方法可以适用各种精度的卷积神经网络训练。
Claims (1)
1.一种基于数据流的卷积神经网络权重梯度优化方法,其特征在于,该方法具体包括如下步骤:
步骤1、将输入图像传输给行缓存模块与列缓存模块,拼接成(H-K+1)×(H-K+1)个K×K的卷积核大小进行周期性输出;其中的行缓存模块由K-1个FIFO构成,列缓存模块由移位寄存器构成;
步骤2、将输出图像梯度存入到片上存储(Block RAM,BRAM),每当输入图像拼接成一个K×K的移动窗口,从BRAM取出一个对应的数据,并复制成K×K份;
步骤3、将步骤1拼接成的数据与步骤2取出的数据同时输入给K×K个乘法器单元进行计算,获取K×K个结果;
步骤4、将步骤3计算的结果输出给自相加模块;重复步骤3,将获得的结果与当前自相加模块的结果进行相加,直至算到最后一个滑动窗口,获得最终的结果;其中的自相加模块由K×K个加法器构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011532343.4A CN112633498B (zh) | 2020-12-22 | 2020-12-22 | 基于数据流的卷积神经网络权重梯度优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011532343.4A CN112633498B (zh) | 2020-12-22 | 2020-12-22 | 基于数据流的卷积神经网络权重梯度优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112633498A true CN112633498A (zh) | 2021-04-09 |
CN112633498B CN112633498B (zh) | 2023-04-07 |
Family
ID=75321133
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011532343.4A Active CN112633498B (zh) | 2020-12-22 | 2020-12-22 | 基于数据流的卷积神经网络权重梯度优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112633498B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106504182A (zh) * | 2016-11-02 | 2017-03-15 | 山东正晨科技股份有限公司 | 一种基于fpga的直线特征提取系统 |
CN106528357A (zh) * | 2016-11-24 | 2017-03-22 | 天津大学 | 基于拟牛顿法在线训练神经网络的fpga系统及实现方法 |
CN110377874A (zh) * | 2019-07-23 | 2019-10-25 | 江苏鼎速网络科技有限公司 | 卷积运算方法及系统 |
US20200211259A1 (en) * | 2018-12-28 | 2020-07-02 | Intel Corporation | Apparatus and method for acceleration data structure refit |
CN111860812A (zh) * | 2016-04-29 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN111950596A (zh) * | 2020-07-15 | 2020-11-17 | 华为技术有限公司 | 一种用于神经网络的训练方法以及相关设备 |
-
2020
- 2020-12-22 CN CN202011532343.4A patent/CN112633498B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111860812A (zh) * | 2016-04-29 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN106504182A (zh) * | 2016-11-02 | 2017-03-15 | 山东正晨科技股份有限公司 | 一种基于fpga的直线特征提取系统 |
CN106528357A (zh) * | 2016-11-24 | 2017-03-22 | 天津大学 | 基于拟牛顿法在线训练神经网络的fpga系统及实现方法 |
US20200211259A1 (en) * | 2018-12-28 | 2020-07-02 | Intel Corporation | Apparatus and method for acceleration data structure refit |
CN110377874A (zh) * | 2019-07-23 | 2019-10-25 | 江苏鼎速网络科技有限公司 | 卷积运算方法及系统 |
CN111950596A (zh) * | 2020-07-15 | 2020-11-17 | 华为技术有限公司 | 一种用于神经网络的训练方法以及相关设备 |
Non-Patent Citations (6)
Title |
---|
RUIZHE ZHAO 等: ""Optimizing CNN-based object detection algorithms on embedded FPGA platforms"", 《INTERNATIONAL SYMPOSIUM ON APPLIED RECONFIGURABLE COMPUTING》 * |
SHREYAS KOLALA 等: ""Automatic compiler based FPGA accelerator for CNN training"", 《IEEE》 * |
姜晓明 等: ""基于FPGA的低复杂度快速SIFT特征提取"", 《北京航空航天大学学报》 * |
徐欣 等: ""一种高度并行的卷积神经网络加速器设计方法"", 《哈尔滨工业大学学报》 * |
桑若愚: ""拟牛顿法硬件加速平台的实现及在神经网络训练中的应用"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
黄家明 等: ""基于FPGA的红外目标识别神经网络加速器设计"", 《飞控与探测》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112633498B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111459877B (zh) | 基于FPGA加速的Winograd YOLOv2目标检测模型方法 | |
CN107704916B (zh) | 一种基于fpga实现rnn神经网络的硬件加速器及方法 | |
US10936941B2 (en) | Efficient data access control device for neural network hardware acceleration system | |
CN111414994B (zh) | 一种基于FPGA的Yolov3网络计算加速系统及其加速方法 | |
US20210357736A1 (en) | Deep neural network hardware accelerator based on power exponential quantization | |
WO2022037257A1 (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
CN110895715A (zh) | 存储高效的神经网络 | |
CN106846235B (zh) | 一种利用NVIDIA Kepler GPU汇编指令加速的卷积优化方法及系统 | |
CN110796235B (zh) | 卷积神经网络Valid卷积的向量化实现方法 | |
US20210065328A1 (en) | System and methods for computing 2-d convolutions and cross-correlations | |
EP3709225A1 (en) | System and method for efficient utilization of multipliers in neural-network computations | |
WO2021080873A1 (en) | Structured pruning for machine learning model | |
Chen et al. | A high-throughput and energy-efficient RRAM-based convolutional neural network using data encoding and dynamic quantization | |
CN113191488A (zh) | 一种面向lstm网络模型的硬件加速系统 | |
CN113313244B (zh) | 面向加法网络的近存储神经网络加速器及其加速方法 | |
CN117435855B (zh) | 用于进行卷积运算的方法、电子设备和存储介质 | |
CN112633498B (zh) | 基于数据流的卷积神经网络权重梯度优化方法 | |
CN108073548B (zh) | 卷积运算装置及卷积运算方法 | |
CN111047037A (zh) | 数据处理方法、装置、设备及存储介质 | |
US20230259743A1 (en) | Neural network accelerator with configurable pooling processing unit | |
CN116842304A (zh) | 一种不规则稀疏矩阵的计算方法及系统 | |
CN113392963B (zh) | 基于fpga的cnn硬件加速系统设计方法 | |
Lu et al. | A reconfigurable DNN training accelerator on FPGA | |
Zhang et al. | Yolov3-tiny Object Detection SoC Based on FPGA Platform | |
KR20220131333A (ko) | 산술 논리 유닛 |
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 |