CN205139973U - 基于fpga器件构建的bp神经网络 - Google Patents
基于fpga器件构建的bp神经网络 Download PDFInfo
- Publication number
- CN205139973U CN205139973U CN201520828158.8U CN201520828158U CN205139973U CN 205139973 U CN205139973 U CN 205139973U CN 201520828158 U CN201520828158 U CN 201520828158U CN 205139973 U CN205139973 U CN 205139973U
- Authority
- CN
- China
- Prior art keywords
- module
- data selector
- computing unit
- calculation
- 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.)
- Expired - Fee Related
Links
Landscapes
- Logic Circuits (AREA)
Abstract
本实用新型公开了一种基于FPGA器件构建的BP神经网络,包括样本数据输入存储器、地址发生器、隐层输出存储器和与神经元数量相同的计算单元,所述计算单元包括单元输入存储器、两套并列的数据选择器、乘累加模块、激活函数模块和反向误差计算模块,其优点在于:通过将整个神经网络的计算简化为神经元的乘累加模块、激活函数模块和反向误差计算单元,所构成的BP神经网络层内的计算是并行执行的,每个乘累加模块对应一个神经元,完成对神经元的各连接的依次计算,缩短计算进程,简化网络结构,减小硬件耗占面积。
Description
技术领域
本实用新型涉及BP神经网络结构技术领域,尤其涉及基于FPGA器件构建的BP神经网络。
背景技术
FPGA器件以其可重配置、并行分布式的特性,被认为是实现硬件神经网络的合适平台,而在此类器件上实现神经网络,仍然面临着乘法器、非线性激活函数耗占硬件面积大的问题、神经元突触连接占用大量互联资源、扇入扇出大的问题等诸多问题。
神经网络中神经元数量的增加将导致突触连接数量的非线性增长。例如一个2层前馈全互联神经网络,每一层有m个神经元,那么就有m2个突触连接,随着m的增加呈非线性增长的趋势,将会导致FPGA不能容纳大量的突触连接,成为限制基于FPGA实现神经网络的重要因素。
目前FPGA上实现神经元互联通常采用对角线、分段或分级2维路由结构,其路由转换需求随着神经元的增加非线性增长。国外学者研究了若干路由优化方法和拓扑结构试图改善FPGA路由的延迟和性能。近年来,网络概念被用来解决片上系统的连接问题,片上网络拓扑和路由框架被提出。采用片上网络的主要优点在于其可伸缩性连接,可以使用少量的器件互联资源实现大量的连接。
目前,最常见的互联结构是仲裁共享总线,其优点是技术简单,占用面积少、可扩展。然而,共享总线结构实质上是一种串行通信,对于神经网络互联的实现而言,两层之间的通信是一种多组信号并行通信,使用共享总线势必降低通信效率;另外,相对较长的总线会导致传输延时显著增加,可能导致系统失效。
实用新型内容
本实用新型所要解决的技术问题是提供一种基于FPGA器件构建的BP神经网络,将整个神经网络的计算简化为神经元的乘累加模块、激活函数模块和反向误差计算单元,所构成的BP神经网络层内的计算是并行执行的,每个乘累加模块对应一个神经元,完成对神经元的各连接的依次计算,缩短计算进程,简化网络结构,减小硬件耗占面积。
为解决上述技术问题,本实用新型所采取的技术方案是:一种基于FPGA器件构建的BP神经网络,包括样本数据输入存储器、地址发生器、隐层输出存储器和与神经元数量相同的计算单元,所述计算单元包括单元输入存储器、两套并列的数据选择器、乘累加模块、激活函数模块和反向误差计算模块,两套数据选择器输出结果给对应的乘累加模块,其中一套数据选择器与样本数据输入存储器通信,另一套数据选择器与单元输入存储器通信,单元输入存储器与样本数据输入存储器通信,地址发生器分别与每套计算单元的单元输入存储器通信,所述每套计算单元的激活函数模块均与隐层输出存储器通信,每套计算单元的激活函数模块还与该计算单元的反向误差计算模块通信,反向误差计算模块将计算结果传递给对应计算单元的激活函数模块和单元输入存储器,反向误差计算模块的计算结果还传递给与样本数据出入存储器通信的数据选择器。
所述乘累加模块为基于Booth算法的乘法器,乘法器包括部分积生成器、部分积压缩器和加法器阵列,所述部分积生成器输出数据给部分积压缩器,部分积压缩器输出数据给加法器阵列,加法器阵列输出最终数据。
所述激活函数模块采用STAM算法实现。
所述反向误差计算模块包括减法器、权值调整模块、输出层权值存储器、两套数据选择器和乘法器,减法器输入理想值和实际值,乘法器输出结果分别传递给权值调整模块和一套数据选择器,输出层权值存储器输出数据给对应计算单元的乘累加模块,对应计算单元的乘累加模块输出数据给其中一套数据选择器,减法器计算结果传递给权值调整模块和另外一套数据选择器,两套数据选择器分别输入需要做乘法运算的数据。
采用上述技术方案所产生的有益效果在于:通过将整个神经网络的计算简化为神经元的乘累加模块、激活函数模块和反向误差计算单元,所构成的BP神经网络层内的计算是并行执行的,每个乘累加模块对应一个神经元,完成对神经元的各连接的依次计算,缩短计算进程,简化网络结构,减小硬件耗占面积。
附图说明
图1是本实用新型结构图;
图2是反向误差计算单元结构图;
图3是乘累加模块结构图;
图4是部分积生成器框图;
图5是部分积生成器的倍数信号生成电路结构图;
图6是部分积生成器各信号生产电路结构图;
图7是激活函数模块结构图;
在附图中:MUX;数据选择器;MAX;乘累加模块;F:激活函数模块;E:反向误差计算模块;RAM:存储器;。
具体实施方式
下面结合附图和具体实施方式对本实用新型作进一步详细的说明。
为解决现有BP神经网络硬件耗占面积较大,数据传递过程长,结构复杂的问题,本实用新型提供一种如图1所示的基于FPGA器件构建的BP神经网络,包括样本数据输入存储器、地址发生器、隐层输出存储器和与神经元数量相同的计算单元,所述计算单元包括单元输入存储器、两套并列的数据选择器、乘累加模块(参见附图3)、激活函数模块和反向误差计算模块(参见附图2),两套数据选择器输出结果给对应的乘累加模块,其中一套数据选择器与样本数据输入存储器通信,另一套数据选择器与单元输入存储器通信,单元输入存储器与样本数据输入存储器通信,地址发生器分别与每套计算单元的单元输入存储器通信,所述每套计算单元的激活函数模块均与隐层输出存储器通信,每套计算单元的激活函数模块还与该计算单元的反向误差计算模块通信,反向误差计算模块将计算结果传递给对应计算单元的激活函数模块(参见附图7)和单元输入存储器,反向误差计算模块的计算结果还传递给与样本数据出入存储器通信的数据选择器;所述乘累加模块为基于Booth算法的乘法器(参见附图4-6),乘法器包括部分积生成器、部分积压缩器和加法器阵列,所述部分积生成器输出数据给部分积压缩器,部分积压缩器输出数据给加法器阵列,加法器阵列输出最终数据;所述激活函数模块采用STAM算法实现;所述反向误差计算模块包括减法器、权值调整模块、输出层权值存储器、两套数据选择器和乘法器,减法器输入理想值和实际值,乘法器输出结果分别传递给权值调整模块和一套数据选择器,输出层权值存储器输出数据给对应计算单元的乘累加模块,对应计算单元的乘累加模块输出数据给其中一套数据选择器,减法器计算结果传递给权值调整模块和另外一套数据选择器,两套数据选择器分别输入需要做乘法运算的数据。
本实用新型中的反向误差计算模块包括两部分,输出层误差计算和隐层误差计算,输出层误差计算就是一个简单的减法运算,用一个减法器就能实现;隐层的误差计算可分为两部分,一部分是对隐层激活函数求导,可以用激活函数F的两个输出相乘得到,另一部分是输出层误差与相应输出层连接权作乘累加,这部分为了与输出层权值调整交织进行,所以需要额外的MAC单元来执行。
在具体应用过程中,BP神经网络层内的计算是并行执行的。每个MAC对应一个神经元,完成对神经元的各连接地依次计算。整个网络硬件执行过程如下:
(1)输入层输入,样本数据存放到输入RAM;
(2)隐层的计算,多路选择器选择输入RAM的数据作为神经元MAC的输入与相应隐层权值做乘累加计算,计算结果传递给激活函数F;
(3)隐层激活函数计算,并把计算结果存到隐层输出RAM;
(4)输出层的计算,将隐层输出RAM的Dout数据返回MAC单元,与相应的输出层权值做乘累加计算。此时,因输出层的激活函数选择的是线性函数,所以它的计算结果即为网络的输出;
(5)反向误差的计算,将网络的输出和隐层激活函数的计算结果送入误差计算单元F,计算各层的权值修正量ΔWi;
(6)各层权值的调整,将权值修正量返回MAC单元,作权值的调整,将计算结果Wi’存入相应的权值RAMi中,替换掉原来的Wi。
至此,整个网络训练循环次结束,重复上述几个步骤,直到训练步数或误差达到要求为止。
总之,本实用新型通过将整个神经网络的计算简化为神经元的乘累加模块、激活函数模块和反向误差计算单元,所构成的BP神经网络层内的计算是并行执行的,每个乘累加模块对应一个神经元,完成对神经元的各连接的依次计算,缩短计算进程,简化网络结构,减小硬件耗占面积。
Claims (2)
1.一种基于FPGA器件构建的BP神经网络,其特征在于:包括样本数据输入存储器、地址发生器、隐层输出存储器和与神经元数量相同的计算单元,所述计算单元包括单元输入存储器、两套并列的数据选择器、乘累加模块、激活函数模块和反向误差计算模块,两套数据选择器输出结果给对应的乘累加模块,其中一套数据选择器与样本数据输入存储器通信,另一套数据选择器与单元输入存储器通信,单元输入存储器与样本数据输入存储器通信,地址发生器分别与每套计算单元的单元输入存储器通信,所述每套计算单元的激活函数模块均与隐层输出存储器通信,每套计算单元的激活函数模块还与该计算单元的反向误差计算模块通信,反向误差计算模块将计算结果传递给对应计算单元的激活函数模块和单元输入存储器,反向误差计算模块的计算结果还传递给与样本数据出入存储器通信的数据选择器。
2.根据权利要求1所述的基于FPGA器件构建的BP神经网络,其特征在于:所述反向误差计算模块包括减法器、权值调整模块、输出层权值存储器、两套数据选择器和乘法器,减法器输入理想值和实际值,乘法器输出结果分别传递给权值调整模块和一套数据选择器,输出层权值存储器输出数据给对应计算单元的乘累加模块,对应计算单元的乘累加模块输出数据给其中一套数据选择器,减法器计算结果传递给权值调整模块和另外一套数据选择器,两套数据选择器分别输入需要做乘法运算的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201520828158.8U CN205139973U (zh) | 2015-10-26 | 2015-10-26 | 基于fpga器件构建的bp神经网络 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201520828158.8U CN205139973U (zh) | 2015-10-26 | 2015-10-26 | 基于fpga器件构建的bp神经网络 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN205139973U true CN205139973U (zh) | 2016-04-06 |
Family
ID=55625743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201520828158.8U Expired - Fee Related CN205139973U (zh) | 2015-10-26 | 2015-10-26 | 基于fpga器件构建的bp神经网络 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN205139973U (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105930902A (zh) * | 2016-04-18 | 2016-09-07 | 中国科学院计算技术研究所 | 一种神经网络的处理方法、系统 |
CN106203621A (zh) * | 2016-07-11 | 2016-12-07 | 姚颂 | 用于卷积神经网络计算的处理器 |
CN107229967A (zh) * | 2016-08-22 | 2017-10-03 | 北京深鉴智能科技有限公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN107341547A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN107862379A (zh) * | 2017-07-21 | 2018-03-30 | 电子科技大学 | 神经网络fpga |
CN106022468B (zh) * | 2016-05-17 | 2018-06-01 | 成都启英泰伦科技有限公司 | 人工神经网络处理器集成电路及该集成电路的设计方法 |
CN108491924A (zh) * | 2018-02-11 | 2018-09-04 | 江苏金羿智芯科技有限公司 | 一种面向人工智能计算的神经网络数据串行流水处理装置 |
CN108629406A (zh) * | 2017-03-24 | 2018-10-09 | 展讯通信(上海)有限公司 | 用于卷积神经网络的运算装置 |
CN109328362A (zh) * | 2016-05-20 | 2019-02-12 | 渊慧科技有限公司 | 渐进式神经网络 |
CN109343826A (zh) * | 2018-08-14 | 2019-02-15 | 西安交通大学 | 一种面向深度学习的可重构处理器运算单元 |
US10621486B2 (en) | 2016-08-12 | 2020-04-14 | Beijing Deephi Intelligent Technology Co., Ltd. | Method for optimizing an artificial neural network (ANN) |
US10643124B2 (en) | 2016-08-12 | 2020-05-05 | Beijing Deephi Intelligent Technology Co., Ltd. | Method and device for quantizing complex artificial neural network |
US10698657B2 (en) | 2016-08-12 | 2020-06-30 | Xilinx, Inc. | Hardware accelerator for compressed RNN on FPGA |
US10762426B2 (en) | 2016-08-12 | 2020-09-01 | Beijing Deephi Intelligent Technology Co., Ltd. | Multi-iteration compression for deep neural networks |
US10802992B2 (en) | 2016-08-12 | 2020-10-13 | Xilinx Technology Beijing Limited | Combining CPU and special accelerator for implementing an artificial neural network |
US10810484B2 (en) | 2016-08-12 | 2020-10-20 | Xilinx, Inc. | Hardware accelerator for compressed GRU on FPGA |
US10832123B2 (en) | 2016-08-12 | 2020-11-10 | Xilinx Technology Beijing Limited | Compression of deep neural networks with proper use of mask |
US10936941B2 (en) | 2016-08-12 | 2021-03-02 | Xilinx, Inc. | Efficient data access control device for neural network hardware acceleration system |
US10984308B2 (en) | 2016-08-12 | 2021-04-20 | Xilinx Technology Beijing Limited | Compression method for deep neural networks with load balance |
CN117408315A (zh) * | 2023-10-25 | 2024-01-16 | 合肥工业大学 | 一种用于流水线模数转换器后台校准的前向推理模块 |
-
2015
- 2015-10-26 CN CN201520828158.8U patent/CN205139973U/zh not_active Expired - Fee Related
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11580367B2 (en) | 2016-04-18 | 2023-02-14 | Institute Of Computing Technology, Chinese Academy Of Sciences | Method and system for processing neural network |
CN105930902A (zh) * | 2016-04-18 | 2016-09-07 | 中国科学院计算技术研究所 | 一种神经网络的处理方法、系统 |
CN107341547A (zh) * | 2016-04-29 | 2017-11-10 | 北京中科寒武纪科技有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN107341547B (zh) * | 2016-04-29 | 2021-04-20 | 中科寒武纪科技股份有限公司 | 一种用于执行卷积神经网络训练的装置和方法 |
CN106022468B (zh) * | 2016-05-17 | 2018-06-01 | 成都启英泰伦科技有限公司 | 人工神经网络处理器集成电路及该集成电路的设计方法 |
CN109328362B (zh) * | 2016-05-20 | 2024-01-05 | 渊慧科技有限公司 | 渐进式神经网络 |
US11775804B2 (en) | 2016-05-20 | 2023-10-03 | Deepmind Technologies Limited | Progressive neural networks |
CN109328362A (zh) * | 2016-05-20 | 2019-02-12 | 渊慧科技有限公司 | 渐进式神经网络 |
CN106203621B (zh) * | 2016-07-11 | 2019-04-30 | 北京深鉴智能科技有限公司 | 用于卷积神经网络计算的处理器 |
CN106203621A (zh) * | 2016-07-11 | 2016-12-07 | 姚颂 | 用于卷积神经网络计算的处理器 |
US10984308B2 (en) | 2016-08-12 | 2021-04-20 | Xilinx Technology Beijing Limited | Compression method for deep neural networks with load balance |
US10936941B2 (en) | 2016-08-12 | 2021-03-02 | Xilinx, Inc. | Efficient data access control device for neural network hardware acceleration system |
US10643124B2 (en) | 2016-08-12 | 2020-05-05 | Beijing Deephi Intelligent Technology Co., Ltd. | Method and device for quantizing complex artificial neural network |
US10698657B2 (en) | 2016-08-12 | 2020-06-30 | Xilinx, Inc. | Hardware accelerator for compressed RNN on FPGA |
US10762426B2 (en) | 2016-08-12 | 2020-09-01 | Beijing Deephi Intelligent Technology Co., Ltd. | Multi-iteration compression for deep neural networks |
US10802992B2 (en) | 2016-08-12 | 2020-10-13 | Xilinx Technology Beijing Limited | Combining CPU and special accelerator for implementing an artificial neural network |
US10810484B2 (en) | 2016-08-12 | 2020-10-20 | Xilinx, Inc. | Hardware accelerator for compressed GRU on FPGA |
US10832123B2 (en) | 2016-08-12 | 2020-11-10 | Xilinx Technology Beijing Limited | Compression of deep neural networks with proper use of mask |
US10621486B2 (en) | 2016-08-12 | 2020-04-14 | Beijing Deephi Intelligent Technology Co., Ltd. | Method for optimizing an artificial neural network (ANN) |
CN107229967B (zh) * | 2016-08-22 | 2021-06-15 | 赛灵思公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN107229967A (zh) * | 2016-08-22 | 2017-10-03 | 北京深鉴智能科技有限公司 | 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法 |
CN108629406B (zh) * | 2017-03-24 | 2020-12-18 | 展讯通信(上海)有限公司 | 用于卷积神经网络的运算装置 |
CN108629406A (zh) * | 2017-03-24 | 2018-10-09 | 展讯通信(上海)有限公司 | 用于卷积神经网络的运算装置 |
CN107862379A (zh) * | 2017-07-21 | 2018-03-30 | 电子科技大学 | 神经网络fpga |
CN108491924B (zh) * | 2018-02-11 | 2022-01-07 | 江苏金羿智芯科技有限公司 | 一种面向人工智能计算的神经网络数据串行流水处理装置 |
CN108491924A (zh) * | 2018-02-11 | 2018-09-04 | 江苏金羿智芯科技有限公司 | 一种面向人工智能计算的神经网络数据串行流水处理装置 |
CN109343826A (zh) * | 2018-08-14 | 2019-02-15 | 西安交通大学 | 一种面向深度学习的可重构处理器运算单元 |
CN109343826B (zh) * | 2018-08-14 | 2021-07-13 | 西安交通大学 | 一种面向深度学习的可重构处理器运算单元 |
CN117408315A (zh) * | 2023-10-25 | 2024-01-16 | 合肥工业大学 | 一种用于流水线模数转换器后台校准的前向推理模块 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN205139973U (zh) | 基于fpga器件构建的bp神经网络 | |
CN110516801B (zh) | 一种高吞吐率的动态可重构卷积神经网络加速器 | |
CN106022468B (zh) | 人工神经网络处理器集成电路及该集成电路的设计方法 | |
CN105681628B (zh) | 一种卷积网络运算单元及可重构卷积神经网络处理器和实现图像去噪处理的方法 | |
CN110163357A (zh) | 一种计算装置及方法 | |
CN109543832A (zh) | 一种计算装置及板卡 | |
JP6960700B2 (ja) | マルチキャストネットワークオンチップに基づいた畳み込みニューラルネットワークハードウェアアクセラレータおよびその動作方式 | |
CN109522052A (zh) | 一种计算装置及板卡 | |
CN107918794A (zh) | 基于计算阵列的神经网络处理器 | |
CN110383300A (zh) | 一种计算装置及方法 | |
CN108510064A (zh) | 包括多个核心处理模块的人工神经网络的处理系统及方法 | |
CN109685201A (zh) | 运算方法、装置及相关产品 | |
CN110163350A (zh) | 一种计算装置及方法 | |
CN110276447A (zh) | 一种计算装置及方法 | |
CN108647776A (zh) | 一种卷积神经网络卷积膨胀处理电路及方法 | |
CN107085562A (zh) | 一种基于高效复用数据流的神经网络处理器及设计方法 | |
CN109993301A (zh) | 神经网络训练装置及相关产品 | |
CN108320018A (zh) | 一种人工神经网络运算的装置及方法 | |
CN109670581A (zh) | 一种计算装置及板卡 | |
CN109753319A (zh) | 一种释放动态链接库的装置及相关产品 | |
CN110059797A (zh) | 一种计算装置及相关产品 | |
CN110059809A (zh) | 一种计算装置及相关产品 | |
CN114519425A (zh) | 一种规模可扩展的卷积神经网络加速系统 | |
CN109740729A (zh) | 运算方法、装置及相关产品 | |
CN105955896A (zh) | 一种可重构dbf算法硬件加速器及控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160406 Termination date: 20161026 |