首页 / 专利库 / 电信 / 硬判决 / 基于可重构计算的卷积神经网络池化层、硬件实现方法及系统

基于可重构计算的卷积神经网络池化层、硬件实现方法及系统

阅读:472发布:2020-05-11

专利汇可以提供基于可重构计算的卷积神经网络池化层、硬件实现方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 涉及基于一种可重构计算的 卷积神经网络 池化 层、 硬件 实现方法及系统,该系统包括:控制单元、数据暂存单元、最大池化/平均池化计算单元。控制单元用于读取配置信息,通过有限状态机控制卷积神经网络池化层的运算流程,通过调用最大池化/平均池化计算单元以实现最大池化和平均池化 算法 ;数据暂存单元用于存储计算所需的 输入层 信息及 输出层 结果;最大池化/平均池化计算单元用于计算输出层中各个通道的信息。本发明提出了一种可重构的卷积神经网络池化层硬件架构,计算资源和存储资源都可以进行裁剪拆分,在保证算法 精度 的情况下,高并行度的最大池化/平均池化计算单元大大提高了算法的 硬件实现 速度,该架构可适用于各种 人工智能 场景。,下面是基于可重构计算的卷积神经网络池化层、硬件实现方法及系统专利的具体信息内容。

1.基于可重构计算的卷积神经网络池化层,其特征在于,包括:
控制单元,用于读取配置信息,通过有限状态机控制卷积神经网络池化层的运算流程,通过调用最大池化/平均池化计算单元以实现最大池化和平均池化算法
数据暂存单元,用于存储计算所需的输入层信息及输出层结果;
最大池化/平均池化计算单元,用于计算输出层中各个通道的信息。
2.根据权利要求1所述的基于可重构计算的卷积神经网络池化层,其特征在于,所述配置信息包括通道数、每层的大小、池化核的大小、步长以及池化实现方式。
3.根据权利要求1所述的基于可重构计算的卷积神经网络池化层,其特征在于,所述最大池化/平均池化计算单元由最大池化计算单元和平均池化计算单元组成,最大池化计算单元由N路比较器组成,平均池化计算单元由N路累加器,以及四输入加法树组成,N代表并行路数,其取值取决于运算资源。
4.根据权利要求3所述的基于可重构计算的卷积神经网络池化层,其特征在于, N路并行对于最大池化需要N个比较器,对于平均池化需要N个累加器,和N个四输入加法树,其中四输入加法树由3个加法器构成。
5.根据权利要求3所述的基于可重构计算的卷积神经网络池化层,其特征在于,所述数据暂存单元可拆分为4* N个bank,其中输入层数据乒乓存入2 * N个bank中,输出层数据则乒乓存入其余2 * N个bank中。
6.基于可重构计算的卷积神经网络池化层的硬件实现方法,其特征在于,包括如下步骤:
步骤1、初始化:读取存储在缓存中的卷积神经网络输入层信息input及网络配置信息,并将配置信息传输至控制单元,包含通道数,每层的大小,池化核的大小,步长以及池化实现方式;
步骤2、数据传输:控制器根据当前访问层的通道数将对应的输入层信息传输至数据暂存单元,传输结束后跳转至步骤3;
步骤3、调用最大池化/平均池化计算单元:计算单元读取数据暂存单元中存储的信息,计算输出层的信息并存入数据暂存单元中;
步骤4、判决:判断是否已经计算完输入层所有通道数的信息,未完成则返回步骤2),已完成则结束算法,输出结果。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求6所述方法的步骤。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求6所述方法的步骤。

说明书全文

基于可重构计算的卷积神经网络池化层、硬件实现方法及

系统

技术领域

[0001] 本发明涉及人工智能算法领域,尤其涉及基于可重构计算的卷积神经网络池化层的硬件实现

背景技术

[0002] 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被大量应用于计算机视觉自然语言处理等领域。
[0003] 卷积神经网络的隐含层包含卷积层、池化层和全连接层3类常见构筑,在一些更为现代的算法中可能有Inception模、残差块(residual block)等复杂构筑。在常见构筑中,卷积层和池化层为卷积神经网络特有。以LeNet-5为例,3类常见构筑在隐含层中的顺序通常为:输入-卷积层-池化层-卷积层-池化层-全连接层-输出。
[0004] 在卷积层进行特征提取后,输出的特征图会被传递至池化层进行特征选择和信息过滤。池化层包含预设定的池化函数,其功能是将特征图中单个点的结果替换为其相邻区域的特征图统计量。池化层选取池化区域与卷积核扫描特征图步骤相同,由池化大小、步长和填充控制。平均池化和最大池化是最常见的池化方法,二者以损失特征图尺寸为代价保留图像的背景和纹理信息。池化操作在每个深度切片上进行,例如最大池化中,常用的池化核为2x2大小,在每个深度切片的宽度和高度方向进行下采样,忽略掉75%(3/4)的激活信息,池化操作的过程中,保持深度大小不变。

发明内容

[0005] 发明目的:本发明的目的在于提高池化层实现的灵活性,达到硬件资源与网络大小相适应。该发明提供了一种基于可重构计算的卷积神经网络池化层的硬件实现方法,该方法可以有效地提高卷积神经网络池化层的配置灵活性,减少硬件资源开销,更好地满足实际应用的需求。
[0006] 技术方案:基于可重构计算的卷积神经网络池化层,包括:控制单元,用于读取配置信息,通过有限状态机控制卷积神经网络池化层的运算流程,通过调用最大池化/平均池化计算单元以实现最大池化和平均池化算法;
数据暂存单元,用于存储计算所需的输入层信息及输出层结果;
最大池化/平均池化计算单元,用于计算输出层中各个通道的信息。
[0007] 基于可重构计算的卷积神经网络池化层,包括:控制单元,用于控制卷积神经网络池化层整个的运算流程,通过最大池化/平均池化计算单元来实现池化层的两种推理方式;
数据暂存单元,用于存储计算所需的输入层信息和输出层结果;
最大池化计算单元,用于在每个深度切片的宽度和高度方向下进行下采样,通过求所取样本内的最大值来减少卷积神经网络的数据量,其仅在最大池化时被激活;
平均池化计算单元,用于在每个深度切片的宽度和高度方向下进行下采样,通过求所取样本内的平均值来减少卷积神经网络的数据量,其仅在平均池化时被激活。
[0008] 在进一步的实施例中,所述配置信息包括通道数、每层的大小、池化核的大小、步长以及池化实现方式。
[0009] 在进一步的实施例中,所述最大池化/平均池化计算单元由最大池化计算单元和平均池化计算单元组成,最大池化计算单元由N路比较器组成,平均池化计算单元由N路累加器,以及四输入加法树组成,N代表并行路数,其取值取决于运算资源。
[0010] 在进一步的实施例中, N路并行对于最大池化需要N个比较器,对于平均池化需要N个累加器,和N个四输入加法树,其中四输入加法树由3个加法器构成。
[0011] 在进一步的实施例中,所述数据暂存单元可拆分为4* N个bank,其中输入层数据乒乓存入2 * N个bank中,输出层数据则乒乓存入其余2 * N个bank中。
[0012] 基于可重构计算的卷积神经网络池化层的硬件实现方法,包括如下步骤:步骤1、初始化:读取存储在缓存中的卷积神经网络输入层信息input及网络配置信息,并将配置信息传输至控制单元,包含通道数,每层的大小,池化核的大小,步长以及池化实现方式;
步骤2、数据传输:控制器根据当前访问层的通道数将对应的输入层信息传输至数据暂存单元,传输结束后跳转至步骤3;
步骤3、调用最大池化/平均池化计算单元:计算单元读取数据暂存单元中存储的信息,计算输出层的信息并存入数据暂存单元中;
步骤4、判决:判断是否已经计算完输入层所有通道数的信息,未完成则返回步骤2),已完成则结束算法,输出结果。
[0013] 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述法的步骤。
[0014] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
[0015] 有益效果:第一,本发明实现了一种高性能的基于可重构计算的卷积神经网络池化层,可实现最大池化和平均池化两种运算方式,池化层的通道数,每层的大小,池化核的大小,步长以及池化实现方式可以灵活可配,可适用于各种应用场景。
[0016] 第二,本发明提出了一种可以复用的最大池化/平均池化计算单元,采用全流的多路并行设计方式,以缩短算法的运算周期,复用的计算单元提高了硬件利用率,减少了硬件开销。
[0017] 第三,本发明提出的数据暂存单元可支持裁剪和拆分实现无冲突访存,以保证运算的全流水。
[0018] 第四,本发明架构的主要计算单元为加法器,比较器,易于硬件实现,在保证性能的情况下,拥有低计算复杂度和低硬件开销。
[0019] 综上所述,本发明可以有效地提高系统的性能、灵活性、数据处理和访存带宽,有着良好的实际应用价值。附图说明
[0020] 图1为本发明的实现方法流程示意图。
[0021] 图2是本发明的计算模型示意图。
[0022] 图3是本发明的实现系统架构示意图。
[0023] 图4是本发明的计算单元硬件架构示意图。
[0024] 图5是本发明的数据暂存单元无冲突访存示意图。

具体实施方式

[0025] 在本发明中,基于可重构计算的卷积神经网络池化层的硬件实现方法,主要包括如下步骤:步骤1)初始化:读取存储在缓存中的卷积神经网络输入层信息input及网络配置信息,并将配置信息传输至控制单元,包含通道数,每层的大小,池化核的大小,步长以及池化实现方式;
步骤2)数据传输:控制器根据当前访问层的通道数将对应的输入层信息传输至数据暂存单元,传输结束后跳转至步骤3);
步骤3)调用最大池化/平均池化计算单元:计算单元读取数据暂存单元中存储的信息,计算输出层的信息并存入数据暂存单元中;
步骤4)判决:判断是否已经计算完输入层所有通道数的信息,未完成则返回步骤2),已完成则结束算法,输出结果。
[0026] 采用所述基于可重构计算的卷积神经网络池化层的硬件实现方法,该系统包括:控制单元,读取配置信息,通过有限状态机控制卷积神经网络池化层的运算流程,通过调用最大池化/平均池化计算单元以实现最大池化和平均池化算法;
数据暂存单元,存储计算所需的输入层信息及输出层结果;
最大池化/平均池化计算单元,计算出输出层中各个通道的信息。
[0027] 配置信息包括通道数,每层的大小,池化核的大小,步长以及池化实现方式;该方法可以根据配置信息进行重构,所执行池化层的通道数,每层的大小,池化核的大小,步长以及池化实现方式可以灵活可配。其最大池化/平均池化计算单元包括:最大池化计算单元以及平均池化计算单元,最大池化计算单元由N路比较器组成,平均池化计算单元由N路累加器以及四输入加法树组成。最大池化/平均池化计算单元中的参数N代表并行路数,其取值取决于运算资源,N路并行对于最大池化需要N个比较器,对于平均池化需要N个累加器和N个四输入加法树,其中四输入加法树由3个加法器构成,该硬件架构中N灵活可配。数据暂存单元可进行裁剪拆分。将数据暂存单元拆分为4* N个bank,其中输入层数据乒乓存入2 * N个bank中,输出层数据则乒乓存入其余2 * N个bank中。
[0028] 实施例1如图1所示,本发明所述的基于可重构计算的卷积神经网络池化层的硬件实现方法,其具体实现流程如图1所示。该方法具体步骤如下:
步骤1)初始化:读取存储在缓存中的卷积神经网络输入层信息input及网络配置信息,并将配置信息传输至控制单元,其中包括通道总数Ch,输入层的大小L,池化核的大小F,步长S以及池化实现方式flag_max_avr和当前访问的通道数t;
步骤2)数据传输:控制器根据当前访问通道数t将对应的输入层信息传输至数据暂存单元,传输结束后跳转至步骤3);
步骤3)调用最大池化/平均池化计算单元:计算单元根据配置信息来调用最大池化或者平均池化模块,计算模块读取数据暂存单元中存储的输入层信息,计算池化层的输出结果,其计算过程以 2×2池化核为例,如图2所示,2×2的池化核以2为步长,在当前深度切片的宽度和高度方向进行下采样,忽略掉75%的激活信息,得出2×2大小的输出;
步骤4)判决:判断当前访问通道数t是否等于CNN的总通道数Ch,若t = Ch 判断为 已经计算完输入层所有通道数的信息,算法结束,否则返回步骤2 )。
[0029] 如图3,本实例根据所述基于可重构计算的卷积神经网络池化层的硬件实现,提供一种基于可重构计算的卷积神经网络池化层的硬件实现方法,由控制单元,最大池化/平均池化计算单元和数据暂存单元组成。
[0030] 控制单元,读取包括通道总数Ch,输入层的大小L,池化核的大小F,步长S以及池化实现方式flag_max_avr和当前访问的通道数t在内的配置信息,通过有限状态机控制卷积神经网络池化层的运算流程,通过调用最大池化/平均池化计算单元实现算法。
[0031] 最大池化/平均池化计算单元由最大池化和平均池化两个模块组成,根据池化实现方式flag_max_avr信号来控制:当flag_max_avr = 0时,最大池化模块被激活,每次计算取样本F×F 内的最大值作为输出结果,并且样本选取以S大小在长度和宽度两个方向移动;当flag_max_avr = 1时,平均池化模块被激活,每次计算取样本F×F 内的平均值作为输出结果。最大池化/平均池化计算单元采取了全流水的多路并行设计方式,其具体硬件架构如图4所示,其中 N 为并行路数,由存储资源控制,当bank数为128时,N为32。其中最大池化计算单元由N路比较器组成,平均池化计算单元则由N路累加器和N路四输入加法树组成。因为除法器计算复杂度较高,硬件开销较大,所以算法中除法的实现不采用除法器,而是直接采用移位单元来实现,将每次累加出的结果通过移位操作直接输出给数据暂存单元。其中当F=2时,每批次输入数据的个数为4,可以直接输出给四输入加法器流水输出给移位单元;当F> 2时,每批次输入数据的个数大于4,为了实现结果的流水输出,该单元先将数据输出给累加器,通过累加器分批出数,将分为4批输出的结果传入四输入加法树,再将最终的累加结果传给移位单元。这样对于不同的网络配置,计算单元都可以在数据搬运时达到全流水操作。
[0032] 数据暂存单元用于存储计算所需的输入层信息以及输出层结果,可根据具体算法实现进行裁剪拆分。在执行算法时将数据暂存单元拆分为4* N个bank,其中输入层数据乒乓存入2 * N个bank中,输出层数据则乒乓存入其余2 * N个bank中,以实现无冲突访存,达到数据搬运的全流水操作,其示意图如图5所示。
[0033] 综上所述,本实例的基于可重构计算的卷积神经网络池化层的硬件实现,采用了全流水的多路并行设计方式,可实现最大池化和平均池化两种算法,网络通道数,每层的大小,池化核的大小以及步长灵活可配,具有低计算复杂度、低硬件开销,较高的硬件实现速度,同时显示了针对实际应用的巨大潜力。
[0034] 以上详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种等同变换,这些等同变换均属于本发明的保护范围。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈