一种卷积神经网络的建立装置及方法制造方法及图纸

技术编号:20119394 阅读:19 留言:0更新日期:2019-01-16 12:21
本发明专利技术公开了一种卷积神经网络的建立装置及方法,根据特征图的数据量,在FPGA上设置了2~64个相同的卷积计算模块,分别处理不同的输出通道;在每个卷积计算模块中,将特征图的9个像素输入到设置的卷积运算单元中;对于每个像素,由设置的卷积运算单元根据该像素对应权值进行卷积运算,得到该像素的卷积值;然后对特征图的9个像素的卷积值进行像素累加;再将像素累加后的卷积值进行输入通道累加;最终得到经过了CNN运算的特征图,输出。这样,就采用FPGA简单实现了CNN的特征图的卷积神经运算。

A Device and Method for Constructing Convolutional Neural Network

The invention discloses a device and method for establishing convolution neural network. According to the amount of data of the feature graph, two to 64 identical convolution calculation modules are set up on the FPGA to process different output channels. In each convolution calculation module, nine pixels of the feature graph are input into the set convolution operation unit; for each pixel, the convolution operation unit root is set up. According to the weight of the pixel, the convolution value of the pixel is obtained by convolution operation. Then, the convolution value of nine pixels of the feature map is accumulated by pixels. Then, the convolution value of the accumulated pixels is accumulated by input channels. Finally, the feature map after CNN operation is obtained and output. In this way, the convolutional nerve operation of CNN feature graph is realized simply by using FPGA.

【技术实现步骤摘要】
一种卷积神经网络的建立装置及方法
本专利技术涉及嵌入式系统的大数据量深度学习计算领域,特别涉及一种采用现场可编程门阵列(FPGA)上实现卷积神经网络的建立装置及方法。
技术介绍
卷积神经网络(CNN)是近年发展起来,并引起广泛重视的一种高效识别方法。特别是在模式分类领域,CNN由于避免了对特征图的复杂前期预处理,可以直接输入原始特征图,并得到最终的特征图的分类结果,因而得到了更为广泛的应用。由于CNN涉及运算的特征图的数据量大且运算复杂,一般都采用大型计算机编程实现,这会增加实现的难度及费用。
技术实现思路
有鉴于此,本专利技术实施例提供一种CNN的建立装置,该装置采用FPGA简单实现CNN的特征图的卷积神经运算。本专利技术实施例还提供一种CNN的建立方法,该方法采用FPGA简单实现CNN的特征图的卷积神经运算。本专利技术实施例是这样实现的:一种卷积神经网络的建立装置,在现场可编程门阵列FPGA设置2~64个卷积计算模块,分别处理不同的输出通道;在每个卷积计算模块中包括:特征图输入缓存单元、特征图加载单元、特征图重排序单元、卷积运算单元、权值缓存单元及权值加载单元、输入通道累加单元及特征图输出缓存单元;其中,特征图输入缓存单元,用于缓存特征图,将特征图的9个像素并行发送给特征图加载单元;特征图加载单元,用于并行接收特征图中的9个像素并寄存;特征图重排序单元,用于从特征图加载单元中接收特征图中的9个像素,并按照卷积计算所采用的像素顺序进行重排序;权值缓存单元,用于缓存9个像素对应的权值,并行发送给权值加载单元;权值加载单元,用于并行接收对应9个像素的权值并寄存;卷积运算单元,用于根据从特征图重排序单元提取的重排序的9个像素,及从权值加载单元接收对应于9个像素的权值,并行进行9个像素的卷积累加运算,得到像素累加后的卷积值,输出到输入通道累加单元;输入通道累加单元,用于对卷积运算单元输出的像素累加后的卷积值进行输入通道累加,最终得到经过卷积神经运算的特征图;特征图输出缓存单元,用于接收经过卷积神经运算的特征图,并进行缓存。一种卷积神经网络的建立方法,包括:根据特征图的数据量,在FPGA上设置了2~64个卷积计算模块,分别处理不同的输出通道;在每个卷积计算模块中,将特征图的9像素输入到设置的卷积运算单元中;对于每个像素,由设置的卷积运算单元根据该像素对应的权值进行卷积运算,得到该像素的卷积值后,对9个像素的卷积值进行像素累加;将像素累加后的卷积值进行输入通道累加,最终得到经过了CNN运算的特征图,输出。如上可见,本专利技术实施例根据特征图的数据量,在FPGA上设置了2~64个相同的卷积计算模块,分别处理不同的输出通道;在每个卷积计算模块中,将特征图的9个像素输入到设置的卷积运算单元中;对于每个像素,由设置的卷积运算单元根据该像素对应权值进行卷积运算,得到该像素的卷积值;然后对特征图的9个像素的卷积值进行像素累加;再将像素累加后的卷积值进行输入通道累加;最终得到经过了CNN运算的特征图,输出。这样,就采用FPGA简单实现了CNN的特征图的卷积神经运算。附图说明图1为本专利技术实施例提供的CNN的建立装置结构示意图;图2为本专利技术实施例提供的卷积计算模块结构示意图;图3为本专利技术实施例提供的CNN的建立方法流程图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本专利技术进一步详细说明。为了简单且容易的情况下,实现CNN的卷积神经运算,本专利技术实施例采用FPGA实现,具体地,根据特征图的数据量,在FPGA上设置了2~64个相同的卷积计算模块;在每个卷积计算模块中,将特征图的9个像素输入到设置的卷积运算单元中;对于每个像素,由设置的卷积运算单元根据该像素对应权值进行卷积运算,得到该像素的卷积值;然后对特征图的9个像素的卷积值进行像素累加;再将像素累加后的卷积值进行输入通道累加;最终得到经过了CNN运算的特征图,输出。这样,就采用FPGA简单实现了CNN的特征图的卷积神经运算,简单且降低费用。以下以具体采用32个卷积计算模块对本专利技术实施例进行详细说明,但是需要注意的是,卷积计算模块的数量范围在2~64个,这里并不限制。图1为本专利技术实施例提供的CNN的建立装置结构示意图:在FPGA上设置的32个相同的卷积计算模块,分别处理不同的输出通道;在每个卷积计算模块中包括:特征图输入缓存单元、特征图加载单元、特征图重排序单元、卷积运算单元、权值缓存单元及权值加载单元、输入通道累加单元及特征图输出缓存单元;其中,特征图输入缓存单元,用于缓存特征图,将特征图的9个像素并行发送给特征图加载单元;特征图加载单元,用于并行接收特征图中的9个像素并寄存;特征图重排序单元,用于从特征图加载单元中接收特征图中的9个像素,并按照卷积计算所采用的像素顺序进行重排序;权值缓存单元,用于缓存9个像素对应的权值,并行发送给权值加载单元;权值加载单元,用于并行接收对应9个像素的权值并寄存;卷积运算单元,用于根据从特征图重排序单元提取的重排序的9个像素,及从权值加载单元接收对应于9个像素的权值,并行进行9个像素的卷积累加运算,得到像素累加后的卷积值,输出到输入通道累加单元;输入通道累加单元,用于对卷积运算单元输出的像素累加后的卷积值进行输入通道累加,最终得到经过卷积神经运算的特征图;特征图输出缓存单元,用于接收经过卷积神经运算的特征图,并进行缓存。在该装置中,所述特征图输入缓存单元在每个卷积计算模块中有16个,采用在FPGA上的块随机存取存储器(BRAM)实现,特征图加载单元采用FPGA上的reg类型的寄存器实现,具体由9个reg类型的寄存器构成。在该装置中,卷积运算单元采用设置在FPGA上的处理元件(PE)构成,所述PE是由数字信号处理(DSP)实现,具体卷积运算单元由9个PE构成。在该装置中,权值缓存单元采用BRAM实现,具体由9个BRAM构成,权值加载单元采用FPGA上的reg类型的寄存器实现,具体由9个reg类型的寄存器实现。在该装置中,特征图输出缓存单元采用BRAM实现。图2为本专利技术实施例提供的卷积计算模块结构示意图,如图所示,其中,特征图输入缓存单元采用IBRAM表示,含义是特征图的BRAM,特征图加载单元采用IREG表示,含义是特征图的reg类型的寄存器;权值缓存单元采用WBRAM,含义是权值的BRAM,权值加载单元采用WREG表示,表示的是权值的reg类型的寄存器;卷积运算单元采用PE表示。本专利技术实施例采用了32个卷积计算模块,同时处理32个输出通道及每个卷积计算模块可同时进行9个像素点的乘加运算,处理能力强大,可以处理任意大小的图片。图3为本专利技术实施例提供的CNN的建立方法流程图,其具体步骤为:步骤301、根据特征图的数据量,在FPGA上设置了32个相同的卷积计算模块,分别处理不同的输出通道;步骤302、在每个卷积计算模块中,将特征图的9像素输入到设置的卷积运算单元中;步骤303、对于每个像素,由设置的卷积运算单元根据该像素对应的权值进行卷积运算,得到该像素的卷积值后,对9个像素的卷积值进行像素累加;步骤304、将像素累加后的卷积值进行输入通道累加,最终得到经过了CNN运算的特征图,输出。在该方法中,在步骤302之前,还包括:所本文档来自技高网...

【技术保护点】
1.一种卷积神经网络的建立装置,其特征在于,在现场可编程门阵列FPGA设置2~64个卷积计算模块,分别处理不同的输出通道;在每个卷积计算模块中包括:特征图输入缓存单元、特征图加载单元、特征图重排序单元、卷积运算单元、权值缓存单元及权值加载单元、输入通道累加单元及特征图输出缓存单元;其中,特征图输入缓存单元,用于缓存特征图,将特征图的9个像素并行发送给特征图加载单元;特征图加载单元,用于并行接收特征图中的9个像素并寄存;特征图重排序单元,用于从特征图加载单元中接收特征图中的9个像素,并按照卷积计算所采用的像素顺序进行重排序;权值缓存单元,用于缓存9个像素对应的权值,并行发送给权值加载单元;权值加载单元,用于并行接收对应9个像素的权值并寄存;卷积运算单元,用于根据从特征图重排序单元提取的重排序的9个像素,及从权值加载单元接收对应于9个像素的权值,并行进行9个像素的卷积累加运算,得到像素累加后的卷积值,输出到输入通道累加单元;输入通道累加单元,用于对卷积运算单元输出的像素累加后的卷积值进行输入通道累加,最终得到经过卷积神经运算的特征图;特征图输出缓存单元,用于接收经过卷积神经运算的特征图,并进行缓存。...

【技术特征摘要】
1.一种卷积神经网络的建立装置,其特征在于,在现场可编程门阵列FPGA设置2~64个卷积计算模块,分别处理不同的输出通道;在每个卷积计算模块中包括:特征图输入缓存单元、特征图加载单元、特征图重排序单元、卷积运算单元、权值缓存单元及权值加载单元、输入通道累加单元及特征图输出缓存单元;其中,特征图输入缓存单元,用于缓存特征图,将特征图的9个像素并行发送给特征图加载单元;特征图加载单元,用于并行接收特征图中的9个像素并寄存;特征图重排序单元,用于从特征图加载单元中接收特征图中的9个像素,并按照卷积计算所采用的像素顺序进行重排序;权值缓存单元,用于缓存9个像素对应的权值,并行发送给权值加载单元;权值加载单元,用于并行接收对应9个像素的权值并寄存;卷积运算单元,用于根据从特征图重排序单元提取的重排序的9个像素,及从权值加载单元接收对应于9个像素的权值,并行进行9个像素的卷积累加运算,得到像素累加后的卷积值,输出到输入通道累加单元;输入通道累加单元,用于对卷积运算单元输出的像素累加后的卷积值进行输入通道累加,最终得到经过卷积神经运算的特征图;特征图输出缓存单元,用于接收经过卷积神经运算的特征图,并进行缓存。2.如权利要求1所述的装置,其特征在于,所述特征图输入缓存单元采用FPGA中的块随机存取存储器BRAM;所述特征图加载单元采用FPGA上的reg类型的寄存器实现。3.如权利要求1所述的装置,其特征在于,所述卷积运算单...

【专利技术属性】
技术研发人员:杨志明杨超陈巍巍
申请(专利权)人:深思考人工智能机器人科技北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1