面向神经网络的可重构池化操作模块结构及其实现方法与流程

文档序号:15639021发布日期:2018-10-12 21:50阅读:306来源:国知局

本发明属于人工神经网络技术领域,特别涉及一种面向神经网络的可重构池化操作模块结构。



背景技术:

随着网络的日益庞大,神经网络系统中需要对大量的输入数据进行相应的计算操作,这会产生较大的功耗,目前已经在算法、软件、硬件等进行了大量的研究。然而,低能耗仍面临着新的挑战。

池化操作通过对特征图进行压缩,一方面可以使特征图尺寸减小,简化网络计算复杂度;另一方面进行特征压缩,提取主要特征。池化操作在处理神经网络时在性能和灵活性方面表现出优越性。

由于池化操作是网络计算中一个重要的过程,因此我们进一步优化了池化层的计算阵列设计,提出了一种可重构池化操作模块结构,本案由此产生。



技术实现要素:

本发明的目的,在于提供一种面向神经网络的可重构池化操作模块结构及其实现方法,其不仅可以降低计算过程的复杂度和时间,同时减少功耗,而且提高了计算的灵活性和单元利用率。

为了达成上述目的,本发明的解决方案是:

一种面向神经网络的可重构池化操作模块结构,包括动态配置模块和池化计算模块,所述池化计算模块用于完成池化层的计算过程,在动态配置模块的作用下,实现不同的池化方法,并且动态地配置池化操作的计算规模;当前输入队列在上一次计算之后从数据存储器中读取,结果通过输出队列传输到数据存储器。

上述动态配置模块包括地址控制单元、计算控制单元和状态控制单元,其中,地址控制单元用于控制先入先出阵列的存储器访问地址,并且在外部控制信号的作用下,动态地控制所要读取数据存储器中输入数据的地址;计算控制单元用于控制处理单元中选择器、加法器和移位的操作,在外部控制信号作用下,确定不同的池化方式及计算方式,并且动态配置池化计算模块中计算单元中的计算规模;状态控制单元用来判断池化计算模块中计算单元和计算器的工作状态,并将工作状态反馈到地址控制单元中。

上述计算单元的工作状态包括空闲状态和忙碌状态,状态控制单元将计算单元的工作状态反馈到地址控制单元中,若判断计算单元处于空闲状态,则在地址控制单元的控制下,将下一组输入数据读到计算单元的缓存器中。

一种面向神经网络的可重构池化操作模块结构的实现方法,包括如下步骤:

步骤1,根据网络规模大小,确定池化计算模块中的计算阵列规模n*n;

步骤2,动态配置模块接收外部控制信号[c,k,s],c用于确定所采用的池化方式max-pooling或mean-pooling,k是池化窗口大小,用于确定一次读取输入数据个数的最小单位,s用于地址控制单元确定在一次计算完成后,所需读取下一组输入数据的地址;

步骤3,地址控制单元发出控制信号,读取输入数据至先入先出阵列;

步骤4,计算控制单元控制计算模块的池化方式,以及计算单元所需完成的计算级数;

步骤5,状态控制单元通过确定计算单元和内部计算器的工作状态,并反馈到地址控制单元以读取新的输入数据进行池化操作;

步骤6,一次池化操作结束后,输出数据经过输出先入先出阵列,在地址控制单元的控制下传输到存储器的指定地址,得到相应的输出数据的尺寸,并作为下一层的输入特征图。

上述步骤3的具体内容是:地址控制单元在控制信号k、s的作用下,发出控制信号来确定存储器的访问地址,读取输入数据至先入先出阵列,等待计算单元的读入并进行池化操作。

上述步骤4中,计算控制单元根据控制信号c和k,确定计算模块的池化方式:max-pooling或mean-pooling,分别采用比较器操作和加法器、移位操作来实现。

上述步骤4中,当池化窗口大小大于3*3时,配置多个计算单元实现一次池化操作。

上述步骤5的具体内容是:状态控制单元在接收到计算模块的反馈后,确定计算单元和计算器的工作状态,若处于空闲状态,则通知地址控制单元以确定新的输入数据地址进行池化操作,各计算单元通过并行计算减少计算时间。

采用上述方案后,本发明能够实现不同计算方式下的池化操作,如max-pooling和mean-pooling;在外部控制信号的控制下,根据神经网络的规模大小可以实现池化操作的动态配置,并快速地给出精确结果。本发明与现有技术相比,设计简单,可行性好,采用动态可配置和多级流水线操作,可减小计算复杂度和计算时间,并且降低了功耗,同时保证了一定的精度。本发明适用于多种网络规模,满足了人工神经网络的计算需求,可应用于卷积神经网络的网络加速,卷积神经网络主要用于实现图像识别、语音识别和文字理解等,,

附图说明

图1是本发明模块的结构示意图;

图2是本发明实现方法的流程示意图;

图3是本发明的max-pooling方式下的计算模块结构示意图;

图4是本发明的mean-pooling方式下的计算模块结构示意图;

图5是本发明的max-pooling方式下的工作流程示意图;

图6是本发明的mean-pooling方式下的工作流程示意图。

具体实施方式

以下将结合附图,对本发明的技术方案及有益效果进行详细说明。

如图1所示,本发明提供一种面向神经网络的可重构池化操作模块结构,在各个模块的协调控制下,根据输入数据的特性实现动态配置的池化计算阵列,并给出精确的计算结果。本发明提供的模块结构主要包括动态配置模块和池化计算模块,下面分别介绍。

所述动态配置模块主要包括地址控制单元、计算控制单元和状态控制单元,其中,地址控制单元用于控制先入先出阵列的存储器访问地址,即动态地指定先入先出阵列中数据的来源地址以及输出数据的存储地址,并且在外部控制信号[c,k,s](c是池化方式,k是池化窗口大小,s是窗口移动步长)的作用下,动态地控制所要读取数据存储器中输入数据的地址,即有效地切分输入特征图。

计算控制单元用于控制处理单元中选择器、加法器等的操作,在外部控制信号c、k作用下,可以确定不同的池化方式及计算方式,如图3和图5所示,max-pooling方式下通过选择器实现,如图4和图6所示,mean-pooling方式下通过加法器和移位来实现,并且可以动态配置计算单元中的计算规模,即根据池化窗口的大小,确定计算单元中的计算级数,该池化的形式主要是在计算阵列中进行。

状态控制单元是用来判断池化计算模块中计算单元和计算器的工作状态,其中,计算单元的工作状态包括空闲状态和忙碌状态,计算单元中计算器的工作状态包括选择器、加法器和移位,并将计算单元的工作状态反馈到地址控制单元中,若判断计算单元处于空闲状态,则在地址控制单元的控制下,将下一组输入数据读到计算单元的缓存器中,该方式是多级流水线的操作形式,可以提高计算阵列的利用率。

所述池化计算模块用于完成池化层的计算过程,根据外部信号的输入,在动态配置模块的计算控制单元的作用下,可以实现不同的池化方法,如max-pooling和mean-pooling,并且动态地配置池化操作的计算规模;当前的输入队列在上一次计算之后从数据存储器中读取,计算后的结果通过输出队列传输到数据存储器。其中,所述动态配置模块用于根据输入信号,实现动态配置计算阵列模块,并完成数据间的传输。

池化计算模块主要是在pe阵列中实现的,如:计算阵列为n*n,可以针对不同的神经网络规模,合理地设计计算阵列大小,设计方法为根据各层输入特征图尺寸m*m、池化窗口k*k、步长s,则遍历一张输入特征图需次窗口移动,考虑各层所需遍历次数,合理地设计计算阵列(n*n)的大小,以提高吞吐率和计算效率。池化计算模块中的计算单元可以同时对9个输入数据进行池化操作,在控制信号[c,k,s]作用下,可以实现max-pooling或mean-pooling操作,并且可以动态地配置计算单元的计算级数,如:池化窗口为2*2,则计算级数为2;池化窗口为3*3的大小,池化方式为max-pooling,窗口的移动步长为1,则需要通过选择器实现计算级数为4的操作。计算结果在地址控制单元的控制下,通过输出先入先出阵列传输到片上存储单元。

本发明还提供一种面向神经网络的可重构池化操作模块结构的实现方法,通过外部控制信号,动态配置模块的各个单元实现对池化计算模块的控制,根据各单元发出的控制信号,计算模块进行相应的计算操作并给出精确的输出结果;所述实现方法包括以下步骤:

(1)根据网络规模大小,确定池化计算模块中的计算阵列规模n*n;

(2)动态配置模块接收外部控制信号[c,k,s],c用于确定所采用的池化方式max-pooling或mean-pooling,k是池化窗口大小,用于确定一次读取输入数据个数的最小单位(k*k),s用于地址控制单元确定在一次计算完成后,所需读取下一组输入数据的地址;

(3)确定控制信息后,各控制单元分别给出相应的命令,地址控制单元在控制信号k、s的作用下,发出控制信号来确定存储器的访问地址,读取输入数据至先入先出阵列,等待计算单元的读入并进行池化操作;

(4)计算控制单元根据控制信号c和k,确定计算模块的池化方式,max-pooling或mean-pooling,分别采用比较器操作和加法器、移位操作来实现,并且确定各计算单元所需实现的计算级数,当池化窗口为2*2时,计算级数为2级,池化窗口为3*3时,计算级数需4级,当池化窗口大小大于3*3时,可配置多个计算单元实现一次池化操作;

(5)状态控制单元在接收到计算模块的反馈后,确定计算单元和计算器的工作状态,若处于空闲状态,则通知地址控制单元以确定新的输入数据地址进行池化操作,各计算单元可进行并行计算,减少计算时间;

(6)一次池化操作结束后,输出数据经过输出先入先出阵列,在地址控制单元的控制下传输到存储器的指定地址,得到相应的输出数据的尺寸,并作为下一层的输入特征图。

以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1