CN111427838A - 基于zynq动态更新卷积神经网络的分类系统及方法 - Google Patents
基于zynq动态更新卷积神经网络的分类系统及方法 Download PDFInfo
- Publication number
- CN111427838A CN111427838A CN202010236366.4A CN202010236366A CN111427838A CN 111427838 A CN111427838 A CN 111427838A CN 202010236366 A CN202010236366 A CN 202010236366A CN 111427838 A CN111427838 A CN 111427838A
- Authority
- CN
- China
- Prior art keywords
- neural network
- data
- convolutional neural
- zynq
- ddr
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/32—Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode transfer
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Image Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于ZYNQ动态更新卷积神经网络的分类系统及方法,分类系统包括ZYNQ芯片、千兆以太网口、FEP接口、DDR存储器、服务器和FEP接口摄像头;ZYNQ芯片分别与千兆以太网口、FEP接口和DDR存储器通信连接;千兆以太网口和服务器通信连接;FEP接口和FEP接口摄像头通信连接。本发明支持卷积神经网络种类及参数的动态更新,且支持在线平滑更新,不影响更新任务和分类任务的同时进行。同时可应用于对功耗有要求的设备或野外等复杂环境。本系统还能够同时支持多个ZYNQ设备,可以对多个ZYNQ并发更新。
Description
技术领域
本发明属于通信技术领域,具体涉及一种基于ZYNQ动态更新卷积神经网络的分类系统及方法。
背景技术
随着科技的进步,基于ZYNQ的卷积神经网络的分类系统更新越来越快。但是,传统的基于ZYNQ的卷积神经网络的分类系统只是针对特定的一种卷积神经网络算法,其算法的规模及种类都很难改变,且需要重新改变ZYNQ中PL部分的硬件结构,很难支持动态更新,难以应付复杂多变的目标。同时,基于CPU和GPU的卷积神经网络分类系统功耗体积过大,很难以设备形式应用到野外等恶劣环境。基于以上情况,本发明提出了一种基于ZYNQ动态更新卷积神经网络的分类系统及方法。
发明内容
本发明的目的是为了解决基于ZYNQ的卷积神经网络更新和分类的问题,提出了一种基于ZYNQ动态更新卷积神经网络的分类系统及方法。
本发明的技术方案是:一种基于ZYNQ动态更新卷积神经网络的分类系统包括ZYNQ芯片、千兆以太网口、FEP接口、DDR存储器、服务器和FEP接口摄像头;所述ZYNQ芯片分别与千兆以太网口、FEP接口和DDR存储器通信连接;所述千兆以太网口和服务器通信连接;所述FEP接口和FEP接口摄像头通信连接。
本发明的有益效果是:本系统能够同时支持多个ZYNQ设备,可以对多个ZYNQ并发更新,且功耗较低,设备较小。
进一步地,ZYNQ芯片包括FPGA、ARM双核处理器、第一总线、第二总线和DDR控制器;
FPGA包括寄存器、SRAM缓存、DMA访问模块、数据接收模块、池化电路和卷积乘加电路,用于数据接收和卷积神经网络的前向传播计算;
DMA访问模块分别与第二总线、SRAM缓存、数据接收模块、池化电路和卷积乘加电路通信连接,用于从DDR存储器里读取卷积神经网络权值和输入数据,将卷积乘加电路和池化电路的计算结果写入DDR存储器;
第二总线和DDR控制器通信连接,用于完成ARM双核处理器与FPGA和DDR存储器之间的数据交换;
DDR存储器和DDR控制器通信连接,用于存储输入数据、来自以太网传输的由服务器更新好的卷积神经网络模型和权值以及由FPGA计算的结果;
寄存器分别与第一总线、SRAM缓存、池化电路和卷积乘加电路通信连接,用于存放卷积神经网络每一层的参数;
第一总线分别与千兆以太网口和ARM双核处理器通信连接,用于完成ZYNQ芯片和服务器的数据交换以及ARM双核处理器对FPGA的配置;
数据接收模块和FEP接口通信连接,用于接收输入数据。
上述进一步方案的有益效果是:在本发明中,服务器可以并发处理多个ZYNQ客户端的请求,进行并发更新。
基于以上系统,本发明还提出一种基于ZYNQ动态更新卷积神经网络的分类方法,包括以下步骤:
S1:利用ARM双核处理器核0,经过DDR控制器读取DDR存储器中的卷积神经网络模型;
S2:根据卷积神经网络模型,利用AXI4-Lite总线访问的形式对寄存器进行配置;
S3:基于配置后的寄存器,利用数据接收模块对FEP接口摄像头采集的待处理数据进行预处理,得到输入数据;
S4:通过DMA访问模块对AXI4总线进行访问,将输入数据通过DDR控制器送到DDR存储器中存放;
S5:将存放在DDR存储器中的输入数据分为两路,得到第一路数据和第二路数据;
S6:对第一路数据执行分类操作,完成分类任务;
S7:基于完成的分类任务,对第二路数据执行更新操作,完成更新任务;
S8:利用ARM双核处理器核1发送中断,作为响应,返回步骤S6,继续完成基于ZYNQ动态更新卷积神经网络的分类。
本发明的有益效果是:本发明支持卷积神经网络种类及参数的动态更新,且支持在线平滑更新,不影响更新任务和分类任务的同时进行。同时可应用于对功耗有要求的设备或野外等复杂环境。
进一步地,步骤S3中,FEP接口摄像头采集的待处理数据形式为宽×高×输入通道数,若输入通道数为3,则待处理数据属于三维形式,预处理的方式为:将待处理数据分为一帧一帧的形式;若输入通道数不为3,则待处理数据不足二维或大于三维,预处理的方式为:将待处理数据进行维度变换。
上述进一步方案的有益效果是:在本发明中,卷积神经网络的输入必须是宽×高×输入通道数这种三维的结构。如果待处理数据是图像或者视频数据,因为本来就属于三维,所以预处理只需要把数据分为一帧一帧的形式,并且根据分类目的不同可增加相应的预处理算法。如果待处理数据不足二维或者大于三维,像音频信号或电磁信号等,预处理就需要对输入数据结合相应算法进行维度变换,使之符合卷积神经网络的输入形式。
进一步地,步骤S6包括以下子步骤:
S61:将第一路数据和存放在DDR存储器中的卷积神经网络权值依次经过DDR控制器、第二总线和DMA访问模块送到SRAM缓存中缓存;
S62:按照配置后寄存器的参数,通过卷积乘加电路和池化电路对卷积神经网络模型进行伪代码前向传播计算,得到每层的计算结果;
S63:通过DMA访问模块,将每层的计算结果经过第二总线和DDR控制器放入DDR存储器中,作为下一层的输入;
S64:重复步骤S63,迭代完成分类任务。
上述进一步方案的有益效果是:在本发明中,执行分类任务可完成卷积神经网络的前向传播计算。
进一步地,步骤S62中,配置后寄存器的参数包括输入数据的宽、高、输入通道数和内存地址,权值的宽、高、输入通道数、输出通道数和内存地址,输出特征的内存地址,计算的并行数量,卷积的步长,池化的大小以及池化方式。
上述进一步方案的有益效果是:在本发明中,对FPGA的寄存器进行配置,便于后续步骤的进行。
进一步地,步骤S7包括以下子步骤:
S71:创建与ZYNQ芯片连接对应的以太网子进程;
S72:基于创建好的以太网子进程,通过服务器向ARM双核处理器核1发送命令,请求ZYNQ芯片发送第二路数据;
S73:根据发送命令,由ARM双核处理器核1调度第二路数据经过DDR控制器、ARM处理器、第一总线和千兆以太网口网口发送到服务器;
S74:将第二路数据存放在服务器中以太网进程组和卷积神经网络训练进程的共享内存区域;
S75:利用TensorFlow开源框架对共享内存区域的第二路数据进行卷积神经网络的训练;
S76:将训练好的卷积神经网络模型及权值以文件形式存放,以信号量的方式通知对应的以太网子进程;
S77:利用以太网子进程读取文件,对ZYNQ芯片发送接收命令;
S78:通过接收命令,以二进制形式将卷积神经网络模型及权值发送到ZYNQ芯片中;
S79:将接收到的卷积神经网络模型及权值存放入DDR存储器;
S710:利用ARM双核处理器核1,将存放在DDR存储器中的卷积神经网络模型进行解析,存入ARM双核处理器核1和核0的共享内存区域;
S711:采用中断方式,ARM双核处理器核1通知核0读取共享内存区域的参数,完成更新任务。
上述进一步方案的有益效果是:在本发明中,执行更新任务可完成卷积神经网络的参数和权值的更新训练。
进一步地,步骤S75中,对第二路数据的数据量设定阈值,当数据量达到阈值时,即卷积神经网络模型及权值需要更新,则对共享内存区域的第二路数据进行卷积神经网络的训练,在训练过程中,ZYNQ芯片一直按照原来的卷积神经网络模型及权值进行工作。
上述进一步方案的有益效果是:在本发明中,通过设定阈值来判断卷积神经网络是否需要更新,训练支持开源框架TensorFlow。
进一步地,步骤S79中,权值存放在ARM双核处理器核1和核0的共享内存区域。
上述进一步方案的有益效果是:在本发明中,权值存放在共享内存区域,便于ARM双核处理器核0从共享内存区域中读取参数。
进一步地,步骤S711中,读取共享内存区域的参数包括:每一层中输入特征的宽、高、输入通道数和内存地址,权值的宽、高、输入通道数、输出通道数和内存地址,输出特征的内存地址,计算的并行数量,卷积的步长,池化的大小以及池化方式。
上述进一步方案的有益效果是:在本发明中,读取共享内存区域的参数便于执行完成更新任务。
附图说明
图1为分类系统的结构图;
图2为分类系统内部的详细结构图;
图3为分类方法的流程图;
图中,1、ZYNQ芯片;2、千兆以太网口;3、FEP接口;4、DDR存储器;5、服务器;6、FEP接口摄像头;7、FPGA;8、ARM双核处理器;9、第一总线;10、第二总线;11、DDR控制器;12、寄存器;13、SRAM缓存;14、DMA访问模块;15、数据接收模块;16、池化电路;17、卷积乘加电路。
具体实施方式
下面结合附图对本发明的实施例作进一步的说明。
如图1所示,本发明提供了一种基于ZYNQ动态更新卷积神经网络的分类系统,包括ZYNQ芯片1、千兆以太网口2、FEP接口3、DDR存储器4、服务器5和FEP接口摄像头6;所述ZYNQ芯片1分别与千兆以太网口2、FEP接口3和DDR存储器4通信连接;所述千兆以太网口2和服务器5通信连接;所述FEP接口3和FEP接口摄像头6通信连接。
在本发明实施例中,如图2所示,ZYNQ芯片1包括FPGA7、ARM双核处理器8、第一总线9、第二总线10和DDR控制器11;FPGA7包括寄存器12、SRAM缓存13、DMA访问模块14、数据接收模块15、池化电路16和卷积乘加电路17,用于数据接收和卷积神经网络的前向传播计算;
DMA访问模块14分别与第二总线10、SRAM缓存13、数据接收模块15、池化电路16和卷积乘加电路17通信连接,用于从DDR存储器里读取卷积神经网络权值和输入数据,将卷积乘加电路和池化电路的计算结果写入DDR存储器;
第二总线10和DDR控制器11通信连接,用于完成ARM双核处理器与FPGA和DDR存储器之间的数据交换;
DDR存储器4和DDR控制器11通信连接,用于存储输入数据、来自以太网传输的由服务器更新好的卷积神经网络模型和权值以及由FPGA计算的结果;
寄存器12分别与第一总线9、SRAM缓存13、池化电路16和卷积乘加电路17通信连接,用于存放卷积神经网络每一层的参数;
第一总线9分别与千兆以太网口2和ARM双核处理器8通信连接,用于完成ZYNQ芯片和服务器的数据交换以及ARM双核处理器对FPGA的配置;
数据接收模块15和FEP接口3通信连接,用于接收输入数据。
在本发明中,服务器可以并发处理多个ZYNQ客户端的请求,进行并发更新。
基于以上系统,本发明还提出一种基于ZYNQ动态更新卷积神经网络的分类方法,如图3所示,包括以下步骤:
S1:利用ARM双核处理器核0,经过DDR控制器读取DDR存储器中的卷积神经网络模型;
S2:根据卷积神经网络模型,利用AXI4-Lite总线访问的形式对寄存器进行配置;
S3:基于配置后的寄存器,利用数据接收模块对FEP接口摄像头采集的待处理数据进行预处理,得到输入数据;
S4:通过DMA访问模块对AXI4总线进行访问,将输入数据通过DDR控制器送到DDR存储器中存放;
S5:将存放在DDR存储器中的输入数据分为两路,得到第一路数据和第二路数据;
S6:对第一路数据执行分类操作,完成分类任务;
S7:基于完成的分类任务,对第二路数据执行更新操作,完成更新任务;
S8:利用ARM双核处理器核1发送中断,作为响应,返回步骤S6,继续完成基于ZYNQ动态更新卷积神经网络的分类。
在本发明实施例中,如图3所示,步骤S3中,FEP接口摄像头采集的待处理数据形式为宽×高×输入通道数,若输入通道数为3,则待处理数据属于三维形式,预处理的方式为:将待处理数据分为一帧一帧的形式;若输入通道数不为3,则待处理数据不足二维或大于三维,预处理的方式为:将待处理数据进行维度变换。在本发明中,卷积神经网络的输入必须是宽×高×输入通道数这种三维的结构。如果待处理数据是图像或者视频数据,因为本来就属于三维,所以预处理只需要把数据分为一帧一帧的形式,并且根据分类目的不同可增加相应的预处理算法。如果待处理数据不足二维或者大于三维,像音频信号或电磁信号等,预处理就需要对输入数据结合相应算法进行维度变换,使之符合卷积神经网络的输入形式。
在本发明实施例中,如图3所示,步骤S6包括以下子步骤:
S61:将第一路数据和存放在DDR存储器中的卷积神经网络权值依次经过DDR控制器、第二总线和DMA访问模块送到SRAM缓存中缓存;
S62:按照配置后寄存器的参数,通过卷积乘加电路和池化电路对卷积神经网络模型进行伪代码前向传播计算,得到每层的计算结果;
S63:通过DMA访问模块,将每层的计算结果经过第二总线和DDR控制器放入DDR存储器中,作为下一层的输入;
S64:重复步骤S63,迭代完成分类任务。
在本发明中,执行分类任务可完成卷积神经网络的前向传播计算。
在本发明实施例中,如图3所示,步骤S62中,配置后寄存器的参数包括输入数据的宽、高、输入通道数和内存地址,权值的宽、高、输入通道数、输出通道数和内存地址,输出特征的内存地址,计算的并行数量,卷积的步长,池化的大小以及池化方式。在本发明中,对FPGA的寄存器进行配置,便于后续步骤的进行。
在本发明实施例中,如图3所示,步骤S7包括以下子步骤:
S71:创建与ZYNQ芯片连接对应的以太网子进程;
S72:基于创建好的以太网子进程,通过服务器向ARM双核处理器核1发送命令,请求ZYNQ芯片发送第二路数据;
S73:根据发送命令,由ARM双核处理器核1调度第二路数据经过DDR控制器、ARM处理器、第一总线和千兆以太网口网口发送到服务器;
S74:将第二路数据存放在服务器中以太网进程组和卷积神经网络训练进程的共享内存区域;
S75:利用TensorFlow开源框架对共享内存区域的第二路数据进行卷积神经网络的训练;
S76:将训练好的卷积神经网络模型及权值以文件形式存放,以信号量的方式通知对应的以太网子进程;
S77:利用以太网子进程读取文件,对ZYNQ芯片发送接收命令;
S78:通过接收命令,以二进制形式将卷积神经网络模型及权值发送到ZYNQ芯片中;
S79:将接收到的卷积神经网络模型及权值存放入DDR存储器;
S710:利用ARM双核处理器核1,将存放在DDR存储器中的卷积神经网络模型进行解析,存入ARM双核处理器核1和核0的共享内存区域;
S711:采用中断方式,ARM双核处理器核1通知核0读取共享内存区域的参数,完成更新任务。
在本发明中,执行更新任务可完成卷积神经网络的参数和权值的更新训练。当系统执行更新任务时,服务器的以太网进程收到来自ZYNQ芯片的连接后,创建相应连接的以太网子进程,多个ZYNQ连接就创建多个子进程。然后ARM双核处理器核1等待服务器的命令。
在本发明实施例中,如图3所示,步骤S75中,对第二路数据的数据量设定阈值,当数据量达到阈值时,即卷积神经网络模型及权值需要更新,则对共享内存区域的第二路数据进行卷积神经网络的训练,在训练过程中,ZYNQ芯片一直按照原来的卷积神经网络模型及权值进行工作。在本发明中,通过设定阈值来判断卷积神经网络是否需要更新,训练支持开源框架TensorFlow。
在本发明实施例中,如图3所示,步骤S79中,权值存放在ARM双核处理器核1和核0的共享内存区域。在本发明中,权值存放在共享内存区域,便于ARM双核处理器核0从共享内存区域中读取参数。
在本发明实施例中,如图3所示,步骤S711中,读取共享内存区域的参数包括:每一层中输入特征的宽、高、输入通道数和内存地址,权值的宽、高、输入通道数、输出通道数和内存地址,输出特征的内存地址,计算的并行数量,卷积的步长,池化的大小以及池化方式。在本发明中,读取共享内存区域的参数便于执行完成更新任务。
下面对分类系统进行详细的说明。
千兆以太网口:通过第一总线与ARM双核处理器进行交互,把输入数据发送到服务器,并接收来自服务器通过以太网发送的指令、更新的卷积神经网络模型及权值。
FEP接口:为FEP接口摄像头提供与ZYNQ芯片连接的桥梁,其与ZYNQ芯片中的FPGA相连。
DDR存储器:负责存储输入数据、来自以太网传输的由服务器更新好的卷积神经网络模型和权值以及由FPGA计算的结果。
服务器:负责卷积神经网络的训练更新。分为以太网收发进程与卷积神经网络训练进程。以太网收发进程为多进程模型处理连接,能够并发地处理来自多个ZYNQ客户端的请求。
FEP接口摄像头:采集图像数据,以RGB三通道8bit的方式将图像数据经FEP接口输入到ZYNQ芯片中的FPGA内。
FPGA:负责数据接收和卷积神经网络的前向传播计算,包含数据接收模块。
ARM双核处理器:核0负责配置并调度FPGA完成卷积神经网络的前向传播计算;核1负责以太网传输和完成ZYNQ芯片内卷积神经网络模型及权值的更新、计算与更新分离。
第一总线和第二总线:负责根据总线协议完成ARM双核处理器与FPGA和DDR存储器之间的数据交换,其中ARM双核处理器与FPGA之间为AXI-Lite总线协议,FPGA与DDR存储器之间为AXI4总线协议。
DDR控制器:接收来自ARM双核处理器和总线等不同通道的数据,能够对多通道传输任务进行调度,完成对DDR存储器的访问。
寄存器:存放卷积神经网络每一层的参数,负责指导卷积乘加电路和池化电路的计算以及DMA访问模块的寻址等。
SRAM缓存:负责对输入数据和卷积神经网络权值进行缓存及换入换出,快速把输入数据和卷积神经网络权值提供给卷积乘加电路。
DMA访问模块:不经过ARM双核处理器对DDR存储器进行直接读写,用于从DDR存储器里读取卷积神经网络权值和输入数据,以及将卷积乘加电路和池化电路的计算结果写入DDR存储器。
数据接收模块:负责接收输入数据,输入数据是由FEP接口摄像头输出的图像,在数据接收模块中按照帧格式进行排列,即先宽度方向,再高度方向,最后通道方向的格式,此时输入数据符合卷积神经网络的输入格式。
池化电路:以寄存器组的形式采用比较器、加法器和移位运算的方式进行并行的池化计算。
卷积乘加电路:负责把输入数据和卷积神经网络权值使用dsp资源进行定点的矩阵乘加运算。这里的矩阵乘加采用并行乘法结合加法树的形式完成。
本发明的工作原理及过程为:首先读取DDR存储器中的卷积神经网络模型;再根据卷积神经网络模型对寄存器进行配置;同时利用数据接收模块对FEP接口摄像头采集的待处理数据进行预处理,得到输入数据;再将输入数据分为两路,得到第一路数据和第二路数据;同时对第一路数据执行分类操作,完成分类任务,对第二路数据执行更新操作,完成更新任务;最后利用ARM双核处理器核1发送中断,作为响应,返回执行分类任务,完成基于ZYNQ动态更新卷积神经网络的分类。
本发明的有益效果为:本发明支持卷积神经网络种类及参数的动态更新,且支持在线平滑更新,不影响更新任务和分类任务的同时进行。同时可应用于对功耗有要求的设备或野外等复杂环境。本系统还能够同时支持多个ZYNQ设备,可以对多个ZYNQ并发更新。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
Claims (10)
1.一种基于ZYNQ动态更新卷积神经网络的分类系统,其特征在于,包括ZYNQ芯片(1)、千兆以太网口(2)、FEP接口(3)、DDR存储器(4)、服务器(5)和FEP接口摄像头(6);所述ZYNQ芯片(1)分别与千兆以太网口(2)、FEP接口(3)和DDR存储器(4)通信连接;所述千兆以太网口(2)和服务器(5)通信连接;所述FEP接口(3)和FEP接口摄像头(6)通信连接。
2.根据权利要求1所述的基于ZYNQ动态更新卷积神经网络的分类系统,其特征在于,所述ZYNQ芯片(1)包括FPGA(7)、ARM双核处理器(8)、第一总线(9)、第二总线(10)和DDR控制器(11);
所述FPGA(7)包括寄存器(12)、SRAM缓存(13)、DMA访问模块(14)、数据接收模块(15)、池化电路(16)和卷积乘加电路(17),用于数据接收和卷积神经网络的前向传播计算;
所述DMA访问模块(14)分别与第二总线(10)、SRAM缓存(13)、数据接收模块(15)、池化电路(16)和卷积乘加电路(17)通信连接,用于从DDR存储器里读取卷积神经网络权值和输入数据,将卷积乘加电路和池化电路的计算结果写入DDR存储器;
所述第二总线(10)和DDR控制器(11)通信连接,用于完成ARM双核处理器与FPGA和DDR存储器之间的数据交换;
所述DDR存储器(4)和DDR控制器(11)通信连接,用于存储输入数据、来自以太网传输的由服务器更新好的卷积神经网络模型和权值以及由FPGA计算的结果;
所述寄存器(12)分别与第一总线(9)、SRAM缓存(13)、池化电路(16)和卷积乘加电路(17)通信连接,用于存放卷积神经网络每一层的参数;
所述第一总线(9)分别与千兆以太网口(2)和ARM双核处理器(8)通信连接,用于完成ZYNQ芯片和服务器的数据交换以及ARM双核处理器对FPGA的配置;
所述数据接收模块(15)和FEP接口(3)通信连接,用于接收输入数据。
3.一种基于ZYNQ动态更新卷积神经网络的分类方法,其特征在于,包括以下步骤:
S1:利用ARM双核处理器核0,经过DDR控制器读取DDR存储器中的卷积神经网络模型;
S2:根据卷积神经网络模型,利用AXI4-Lite总线访问的形式对寄存器进行配置;
S3:基于配置后的寄存器,利用数据接收模块对FEP接口摄像头采集的待处理数据进行预处理,得到输入数据;
S4:通过DMA访问模块对AXI4总线进行访问,将输入数据通过DDR控制器送到DDR存储器中存放;
S5:将存放在DDR存储器中的输入数据分为两路,得到第一路数据和第二路数据;
S6:对第一路数据执行分类操作,完成分类任务;
S7:基于完成的分类任务,对第二路数据执行更新操作,完成更新任务;
S8:利用ARM双核处理器核1发送中断,作为响应,返回步骤S6,继续完成基于ZYNQ动态更新卷积神经网络的分类。
4.根据权利要求3所述的基于ZYNQ动态更新卷积神经网络的分类方法,其特征在于,所述步骤S3中,FEP接口摄像头采集的待处理数据形式为宽×高×输入通道数,若输入通道数为3,则待处理数据属于三维形式,预处理的方式为:将待处理数据分为一帧一帧的形式;若输入通道数不为3,则待处理数据不足二维或大于三维,预处理的方式为:将待处理数据进行维度变换。
5.根据权利要求3所述的基于ZYNQ动态更新卷积神经网络的分类方法,其特征在于,所述步骤S6包括以下子步骤:
S61:将第一路数据和存放在DDR存储器中的卷积神经网络权值依次经过DDR控制器、第二总线和DMA访问模块送到SRAM缓存中缓存;
S62:按照配置后寄存器的参数,通过卷积乘加电路和池化电路对卷积神经网络模型进行伪代码前向传播计算,得到每层的计算结果;
S63:通过DMA访问模块,将每层的计算结果经过第二总线和DDR控制器放入DDR存储器中,作为下一层的输入;
S64:重复步骤S63,迭代完成分类任务。
6.根据权利要求5所述的基于ZYNQ动态更新卷积神经网络的分类方法,其特征在于,所述步骤S62中,配置后寄存器的参数包括输入数据的宽、高、输入通道数和内存地址,权值的宽、高、输入通道数、输出通道数和内存地址,输出特征的内存地址,计算的并行数量,卷积的步长,池化的大小以及池化方式。
7.根据权利要求3所述的基于ZYNQ动态更新卷积神经网络的分类方法,其特征在于,所述步骤S7包括以下子步骤:
S71:创建与ZYNQ芯片连接对应的以太网子进程;
S72:基于创建好的以太网子进程,通过服务器向ARM双核处理器核1发送命令,请求ZYNQ芯片发送第二路数据;
S73:根据发送命令,由ARM双核处理器核1调度第二路数据经过DDR控制器、ARM处理器、第一总线和千兆以太网口网口发送到服务器;
S74:将第二路数据存放在服务器中以太网进程组和卷积神经网络训练进程的共享内存区域;
S75:利用TensorFlow开源框架对共享内存区域的第二路数据进行卷积神经网络的训练;
S76:将训练好的卷积神经网络模型及权值以文件形式存放,以信号量的方式通知对应的以太网子进程;
S77:利用以太网子进程读取文件,对ZYNQ芯片发送接收命令;
S78:通过接收命令,以二进制形式将卷积神经网络模型及权值发送到ZYNQ芯片中;
S79:将接收到的卷积神经网络模型及权值存放入DDR存储器;
S710:利用ARM双核处理器核1,将存放在DDR存储器中的卷积神经网络模型进行解析,存入ARM双核处理器核1和核0的共享内存区域;
S711:采用中断方式,ARM双核处理器核1通知核0读取共享内存区域的参数,完成更新任务。
8.根据权利要求7所述的基于ZYNQ动态更新卷积神经网络的分类方法,其特征在于,所述步骤S75中,对第二路数据的数据量设定阈值,当数据量达到阈值时,即卷积神经网络模型及权值需要更新,则对共享内存区域的第二路数据进行卷积神经网络的训练,在训练过程中,ZYNQ芯片一直按照原来的卷积神经网络模型及权值进行工作。
9.根据权利要求7所述的基于ZYNQ动态更新卷积神经网络的分类方法,其特征在于,所述步骤S79中,权值存放在ARM双核处理器核1和核0的共享内存区域。
10.根据权利要求7所述的基于ZYNQ动态更新卷积神经网络的分类方法,其特征在于,所述步骤S711中,读取共享内存区域的参数包括:每一层中输入特征的宽、高、输入通道数和内存地址,权值的宽、高、输入通道数、输出通道数和内存地址,输出特征的内存地址,计算的并行数量,卷积的步长,池化的大小以及池化方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010236366.4A CN111427838B (zh) | 2020-03-30 | 2020-03-30 | 基于zynq动态更新卷积神经网络的分类系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010236366.4A CN111427838B (zh) | 2020-03-30 | 2020-03-30 | 基于zynq动态更新卷积神经网络的分类系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111427838A true CN111427838A (zh) | 2020-07-17 |
CN111427838B CN111427838B (zh) | 2022-06-21 |
Family
ID=71549913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010236366.4A Active CN111427838B (zh) | 2020-03-30 | 2020-03-30 | 基于zynq动态更新卷积神经网络的分类系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111427838B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269585A (zh) * | 2020-11-04 | 2021-01-26 | 配天机器人技术有限公司 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
CN114339994A (zh) * | 2022-03-17 | 2022-04-12 | 杭州优智联科技有限公司 | 一种片内执行机器学习算法的uwb芯片及方法 |
WO2023231999A1 (zh) * | 2022-05-31 | 2023-12-07 | 北京有竹居网络技术有限公司 | 卷积运算方法、卷积运算装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250939A (zh) * | 2016-07-30 | 2016-12-21 | 复旦大学 | 基于fpga+arm多层卷积神经网络的手写体字符识别方法 |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN108806243A (zh) * | 2018-04-24 | 2018-11-13 | 东南大学 | 一种基于Zynq-7000的交通流量信息采集终端 |
CN109784489A (zh) * | 2019-01-16 | 2019-05-21 | 北京大学软件与微电子学院 | 基于fpga的卷积神经网络ip核 |
CN110348574A (zh) * | 2019-07-17 | 2019-10-18 | 哈尔滨理工大学 | 一种基于zynq的通用卷积神经网络加速结构及设计方法 |
CN209785217U (zh) * | 2019-06-14 | 2019-12-13 | 成都理工大学工程技术学院 | 一种基于卷积神经网络和矩阵摄影防疲劳驾驶系统 |
-
2020
- 2020-03-30 CN CN202010236366.4A patent/CN111427838B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250939A (zh) * | 2016-07-30 | 2016-12-21 | 复旦大学 | 基于fpga+arm多层卷积神经网络的手写体字符识别方法 |
CN108416422A (zh) * | 2017-12-29 | 2018-08-17 | 国民技术股份有限公司 | 一种基于fpga的卷积神经网络实现方法及装置 |
CN108806243A (zh) * | 2018-04-24 | 2018-11-13 | 东南大学 | 一种基于Zynq-7000的交通流量信息采集终端 |
CN109784489A (zh) * | 2019-01-16 | 2019-05-21 | 北京大学软件与微电子学院 | 基于fpga的卷积神经网络ip核 |
CN209785217U (zh) * | 2019-06-14 | 2019-12-13 | 成都理工大学工程技术学院 | 一种基于卷积神经网络和矩阵摄影防疲劳驾驶系统 |
CN110348574A (zh) * | 2019-07-17 | 2019-10-18 | 哈尔滨理工大学 | 一种基于zynq的通用卷积神经网络加速结构及设计方法 |
Non-Patent Citations (4)
Title |
---|
YUFEI MA等: "Optimizing the Convolution Operation to Accelerate Deep Neural Networks on FPGA", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》 * |
仇越: "基于FPGA的卷积神经网络加速方法研究及实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
徐丽青等: "《智能变电站二次设备硬件开发》", 31 July 2018 * |
林玉凤: "基于UltraScale FPGA的智能视频高速数据处理系统关键技术研究", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112269585A (zh) * | 2020-11-04 | 2021-01-26 | 配天机器人技术有限公司 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
CN112269585B (zh) * | 2020-11-04 | 2022-11-25 | 配天机器人技术有限公司 | 一种关节驱动器固件在线更新方法、装置及关节驱动器 |
CN114339994A (zh) * | 2022-03-17 | 2022-04-12 | 杭州优智联科技有限公司 | 一种片内执行机器学习算法的uwb芯片及方法 |
WO2023231999A1 (zh) * | 2022-05-31 | 2023-12-07 | 北京有竹居网络技术有限公司 | 卷积运算方法、卷积运算装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111427838B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427838B (zh) | 基于zynq动态更新卷积神经网络的分类系统及方法 | |
CN108416436B (zh) | 使用多核心处理模块进行神经网络划分的方法及其系统 | |
CN109102065B (zh) | 一种基于PSoC的卷积神经网络加速器 | |
CN107301456B (zh) | 基于向量处理器的深度神经网络多核加速实现方法 | |
CN117933314A (zh) | 处理装置、处理方法、芯片及电子装置 | |
TW201935265A (zh) | 一種計算裝置及方法 | |
KR101950786B1 (ko) | 분산처리용 인공신경망 연산 가속화 방법 | |
CN112686379B (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
CN114781632A (zh) | 基于动态可重构脉动张量运算引擎的深度神经网络加速器 | |
CN110276447A (zh) | 一种计算装置及方法 | |
WO2023045446A1 (zh) | 计算装置、数据处理方法及相关产品 | |
CN111831354A (zh) | 数据精度配置方法、装置、芯片、芯片阵列、设备及介质 | |
CN113901746A (zh) | 一种用于向量代数的硬件加速器的设计方法 | |
US11061621B2 (en) | Data processing method, electronic apparatus, and computer-readable storage medium | |
CN114595813A (zh) | 异构加速处理器及数据计算方法 | |
KR102592726B1 (ko) | 데이터 이동 컨트롤러를 포함하는 신경망 시스템 | |
CN112766475A (zh) | 处理部件及人工智能处理器 | |
CN114691345A (zh) | 一种适用于slam非线性并行化芯片计算架构及工作方法 | |
CN115330683A (zh) | 一种基于fpga的目标快速检测系统 | |
US20230013599A1 (en) | Adaptive mac array scheduling in a convolutional neural network | |
CN210721552U (zh) | 卷积电路 | |
CN115470176B (zh) | 计算装置、利用计算装置实施卷积运算的方法及相关产品 | |
CN107688466A (zh) | 一种运算装置及其操作方法 | |
CN112394992A (zh) | 半精度浮点转八位整形指令处理装置、方法及相关产品 | |
CN112394996A (zh) | 八位整形转半精度浮点指令处理装置、方法及相关产品 |
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 |