一种自适应可重构的深度卷积神经网络计算方法和装置与流程

文档序号:11251478阅读:1058来源:国知局
一种自适应可重构的深度卷积神经网络计算方法和装置与流程

本发明涉及计算机技术领域,具体涉及一种自适应可重构的深度卷积神经网络计算方法和装置。



背景技术:

本部分向读者介绍可能与本发明的各个方面相关的背景技术,相信能够向读者提供有用的背景信息,从而有助于读者更好地理解本发明的各个方面。因此,可以理解,本部分的说明是用于上述目的,而并非构成对现有技术的承认。

深度神经网络在当前的多个应用领域均产生了优异的效果,如人脸识别,物体检测,自动驾驶,语音识别等等,得到了十分广泛的应用。随着算法准确度的提升,神经网络的深度在不断增加,模型结构也在不断复杂化。数十甚至上百的网络层数、百万千万级的权值数据总数、大小各异的卷积核异构等等,都使得深度神经网络在实际计算的过程中,需要大量的计算资源和存储资源。考虑到性能功耗比,专用的硬件设计与在通用cpu或gpu上运行神经网络具有很大的优势,可以在低功耗的同时很好的满足计算性能。

在硬件实现和设计的过程中,仍然存在着诸多问题,例如,如何进行计算基元个数等设计参数的选择。因为专用硬件的灵活性较低,设计参数的选择问题就显得尤为重要。在某一确定的神经网络模型中,各个卷积层中卷积核的大小往往也不尽相同。这种情况下,计算基元的个数往往会根据最大的卷积核规模来确定,从而满足计算需求。这种选择方案在计算规模较小卷积核时,会产生硬件资源的浪费,没有办法最大限度的发挥硬件的性能。

除此之外,一些复杂结构的网络模型中,同一层卷积层内也会存在多个不同大小的卷积核计算。例如,谷歌公司提出的卷积神经网络模型googlenet,在一个卷积层中采用多个不同大小的卷积核对同一张输入特征图(featuremap)进行操作的方法,卷积所得结果直接进行连接作为下一层的卷积输入。固定设计的计算基元只能分别串行的计算这些不同规模的卷积操作,并行度较低,不足以满足实际应用对计算性能的要求。由此可见,现有技术在实际应用过程中存在着一些不足和缺陷,需要对其加以改进和优化。



技术实现要素:

要解决的技术问题是如何提供一种自适应可重构的深度卷积神经网络计算方法和装置。

针对现有技术中的缺陷,本发明提供一种自适应可重构的深度卷积神经网络计算方法和装置,能够动态重构计算单元模块,实现各个基本计算基元的独立运行或组合运行,从而支持不同规模的深度卷积神经网络,提高计算性能。

第一方面,本发明提供了一种自适应可重构的深度卷积神经网络计算方法,包括:

根据控制信号决定计算装置的程序执行流程,根据深度神经卷积网络规模参数对基本计算基元进行动态重构确定运算单元的组合级别和并行度;

根据不同的重构情况载入相对应的处理数据,对不同属性的卷积神经网络层进行相应计算;

进行对应数据的乘加操作、累加操作以及非线性激活函数映射,最终得到该组神经元的连接输出结果。

可选地,所述根据深度神经卷积网络规模参数对基本计算基元进行动态重构包括:

神经元的卷积核宽度以及高度的规模小于等于基本计算基元的宽度和高度,则每个基本计算基元并行化处理,相互独立地执行运算。

可选地,所述根据深度神经卷积网络规模参数对基本计算基元进行动态重构包括:

神经元的卷积核宽度和高度的规模大于一个基本计算基元相应的规模,但小于等于两个基本计算基元连接在一起的宽度以及高度的规模,则四个基本计算基元以方阵的形式组合在一起,形成一个二级计算单元;二级计算单元内各个基本计算基元组合在一起进行乘加运算,多个二级基本单元之间并行运行。

可选地,所述根据深度神经卷积网络规模参数对基本计算基元进行动态重构包括:

神经元的卷积核宽度和高度的规模大于两个基本计算基元相应的规模,但小于等于三个基本计算基元连接在一起的宽度以及高度的规模,则九个基本计算基元以方阵的形式组合在一起,形成一个三级计算单元;三级计算单元内各个基本计算基元组合在一起进行乘加运算,多个三级基本计算单元之间并行运行。

可选地,进行对应数据的乘加操作、累加操作以及非线性激活函数映射,最终得到该组神经元的连接输出结果包括:

运算单元完成相应的卷积和累加计算,如果网络模型在该层后衔接了池化层,完成该层所有状态后也输出最终计算结果;如果没有则完成该层计算操作,并输出最终计算结果。

另一方面,本发明还提供一种自适应可重构的深度卷积神经网络计算装置,包括:

控制单元,用于决定计算装置的程序执行流程,采用有限状态机生成控制信号;

参数配置单元,用于根据控制信号对运算单元进行相应的参数配置,根据深度神经卷积网络规模参数对基本计算基元进行动态重构确定运算单元的组合级别和并行度;

计算单元,用于根据不同的重构情况载入相对应的处理数据,计算不同属性的卷积神经网络层;

存储单元,用于存储指令和运算所需的数据,通过冗余的存储单元完成片外数据的预取,覆盖片外传输所需时间;同时采用循环读取的方式,用改变读取地址索引的方式代替不同地址之间数据的搬移;

结果输出单元,用于进行对应数据的乘加操作、累加操作以及非线性激活函数映射,最终得到该组神经元的连接输出结果。

可选地,所述根据深度神经卷积网络规模参数对计算单元进行动态重构包括:

神经元的卷积核(filter)宽度以及高度的规模小于等于基本计算基元的宽度和高度,则每个基本计算基元并行化处理,相互独立地执行运算。

可选地,所述根据深度神经卷积网络规模参数对计算单元进行动态重构包括:

神经元的卷积核宽度和高度的规模大于一个基本计算基元相应的规模,但小于等于两个基本计算基元连接在一起的宽度以及高度的规模,则四个基本计算基元以方阵的形式组合在一起,形成一个二级计算单元;二级计算单元内各个基本计算单元组合在一起进行乘加运算,多个二级基本单元之间并行运行。

可选地,所述根据深度神经卷积网络规模参数对计算单元进行动态重构包括:

神经元的卷积核宽度和高度的规模大于两个基本计算基元相应的规模,但小于等于三个基本计算基元连接在一起的宽度以及高度的规模,则九个基本计算基元以方阵的形式组合在一起,形成一个三级计算单元;三级计算单元内各个基本计算单元组合在一起进行乘加运算,多个三级基本计算单元之间并行运行.

可选地,所述结果输出单元包括:

运算单元完成相应的卷积和累加计算,如果网络模型在该层后衔接了池化层,完成该层所有状态后也输出最终计算结果;如果没有则完成该层计算操作,并输出最终计算结果。

基于上述技术方案可知,本发明的自适应可重构的深度卷积神经网络计算方法及装置具有以下有益效果:

(1)通过运算单元自适应可重构的结构设计,解决了专有硬件灵活性较低的不足,可以重构运算单元的设计参数来达到支持不同规模的深度卷积神经网络的目的;

(2)通过基本计算基元不同级别的独立与组合运算,避免了硬件资源的浪费;既可以满足相同规模的卷积核并行运算,又可以实现不同规模的卷积核并行运算,可动态重构的运算单元极大的提高了深度卷积神经网络运算的并行度,提升了计算性能。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单的介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一个实施例中一种自适应可重构的深度卷积神经网络计算方法流程示意图;

图2是本发明实施例提供的一种自适应可重构的深度卷积神经网络计算装置及方法的整体架构图;

图3是本发明实施例中控制单元所采用的有限状态机的状态转换摘要示意图;

图4是本发明实施例中基本计算基元阵列的整体内部结构示意图

图5是本发明实施例中组成运算单元的基本计算基元的内部结构示意图;

图6是本发明一个较佳实施例提供的自适应可重构的深度卷积神经网络计算方法的流程图。

图7本发明一个实施例中一种自适应可重构的深度卷积神经网络计算结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明提供一种自适应可重构的深度卷积神经网络计算方法,包括:根据控制信号对运算单元进行相应的参数配置,根据深度神经卷积网络规模参数对基本计算基元进行动态重构确定运算单元的组合级别和并行度;根据不同的重构情况载入相对应的处理数据,计算不同属性的卷积神经网络层;进行对应数据的乘加操作、累加操作以及非线性激活函数映射,最终得到该组神经元的连接输出结果。下面对本发明提供的自适应可重构的深度卷积神经网络计算方法展开详细的说明

如图2所示,本发明实施例提供的一种自适应可重构的深度卷积神经网络计算装置及方法的整体架包含三大主要单元模块:控制单元10、运算单元20、存储单元30。控制单元10负责控制整个计算装置的程序执行流程,采用有限状态机实现,根据深度卷积神经网络的不同规模参数,向运算单元发出不同的参数配置信号。参见图3,有限状态机的摘要示意图中给出了6个状态之间的相互转换;系统开始于空闲状态s0,得到开始信号后进入配置参数状态s1,系统根据深度神经卷积网络规模参数对基本计算基元进行动态重构,确定运算单元的组合级别和并行度;完成重构后,由s1状态进入s2,从存储单元载入相应的数据到每个基本计算基元中;根据需要计算的卷积神经网络层属性,系统接下来决定进入卷积层计算状态s3或者全连接层计算状态s4;在卷积计算状态s3中,运算单元完成相应的卷积和累加计算,如果网络模型在该层后衔接了池化层,则进入池化操作状态s5,如果没有则进入状态s6完成该层计算操作,并输出最终计算结果;在全连接计算状态s4中,完成该层所有状态后也输出最终计算结果进入状态s6。

存储单元30,用于存储指令和运算所需的数据;存储单元通过冗余的存储单元完成片外数据的预取,覆盖片外传输所需时间;同时采用循环读取的方式,用改变读取地址索引的方式代替不同地址之间数据的搬移。

运算单元20,用于根据控制单元的指令,载入存储单元中的数据进行相应的计算;运算单元可以实现不同的并行计算度,并适应不同规模大小的深度卷积神经网络的计算;其中,运算单元由计算基元阵列、多个不同路数的加法器、非线性计算单元、池化(pooling)计算单元组成,其中计算基元阵列由多个基本计算基元(processingengines)组成。其中,参见图4,本发明实施例中的计算基元阵列内部结构示意图,较佳地,本实施例中仅以6×6规模的基本计算基元作为示范,以此类推,可以根据需求扩展运算单元规模。

基本计算基元可以实现多种不同级别的组合配置,所述重构情况如下表示:

第一种情况:

神经元的卷积核(filter)宽度以及高度的规模小于等于基本计算基元的宽度和高度,每个基本计算基元并行化处理,相互独立地执行运算;

第二种情况:

神经元的卷积核宽度和高度的规模大于一个基本计算基元相应的规模,但小于等于两个基本计算基元连接在一起的宽度以及高度的规模,则四个基本计算基元以方阵的形式组合在一起,形成一个二级计算单元,参见图3中l2;二级计算单元内各个基本计算单元组合在一起进行乘加运算,多个二级基本单元之间并行运行;

第三种情况:

神经元的卷积核宽度和高度的规模大于两个基本计算基元相应的规模,但小于等于三个基本计算基元连接在一起的宽度以及高度的规模,则九个基本计算基元以方阵的形式组合在一起,形成一个三级计算单元,参见图3中l3;三级计算单元内各个基本计算单元组合在一起进行乘加运算,多个三级基本计算单元之间并行运行;

以此类推……直到神经元的卷积核规模大于所有基本单元组合在一起的规模,则将输入的卷积核进行切割划分,直至小于某一级计算单元的计算规模为止。

参见图5,本发明实施例中组成运算单元的基本计算基元的内部结构示意图;较佳地,本实施例中仅以3×3规模作为示范,以此类推,可以根据需求扩展基本计算基元规模。二路选择器2111的引入是为了重构运算单元既支持卷积层计算,又支持全连接层计算。

下面通过一个更为具体的例子,来说明本发明一个较佳实施例的实现过程,参见图6,该方法的步骤如下所示:

步骤s501:输入神经网络相关的规模参数到系统中。

步骤s502:控制单元比较输入参数和本系统中运算单元的规模,进行决策;若基本计算基元的规模能满足输入神经网络的计算需求,进入步骤s503;若不能满足需求,进入步骤s504。

步骤s503:重构运算单元中各个基本计算基元独立进行运算。

步骤s504:依次组合基本计算基元为二级计算单元、三级计算单元……直至满足网络的最大计算需求,完成运算单元的重构。

步骤s505:从存储单元载入相应的权值信息和输入数据到运算单元中的各个基本计算基元。

步骤s506:按照步骤s503或s504中的重构,各个基本计算基元或独立或组合的进行乘加计算操作,并将得出的结果传入中间结果加和部件。

步骤s507:中间结果加和部件从基本计算基元阵列得到操作数,进行神经网络中各个特征图分量的累加操作;完成所有分量的累加运算后,传入非线性计算模块。

步骤s508:非线性计算模块对中间结果加和部件传入的数据进行激活函数映射操作。

步骤s509:根据输入的深度卷积神经网络参数判断是否需要进行池化操作;若该层网络后衔接了池化层,进入步骤s510;若没有,进入步骤s511。

步骤s510:池化模块对非线性计算模块的计算结果进行池化操作。

步骤s511:将非线性计算模块或池化模块的最终计算结果输出到存储单元,得到本层神经网络的计算结果。

步骤s512:结束该层神经网络的计算操作。

为进一步体现本发明提供的自适应可重构的深度卷积神经网络计算方法的优越性,本发明还提供一种应用上述方法的装置,如图7所示,该装置包括:参数配置单元,用于根据控制信号对运算单元进行相应的参数配置,根据深度神经卷积网络规模参数对基本计算基元进行动态重构确定运算单元的组合级别和并行度;计算单元,用于根据不同的重构情况载入相对应的处理数据,计算卷积神经网络层属性;结果输出单元,用于进行对应数据的乘加操作、累加操作以及非线性激活函数映射,最终得到该组神经元的连接输出结果。本发明提供的自适应可重构的深度卷积神经网络计算装置的工作过程与上述自适应可重构的深度卷积神经网络计算方法的流程类似,可以参照上述方法的流程执行,在此不再一一赘述了。

综上所述,本发明提供的一种自适应可重构的深度卷积神经网络计算方法和装置通过运算单元自适应可重构的结构设计,解决了专有硬件灵活性较低的不足,可以重构运算单元的设计参数来达到支持不同规模的深度卷积神经网络的目的;本发明通过基本计算基元不同级别的独立与组合运算,避免了硬件资源的浪费;既可以满足相同规模的卷积核并行运算,又可以实现不同规模的卷积核并行运算,可动态重构的运算单元极大的提高了深度卷积神经网络运算的并行度,提升了计算性能。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。

本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

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