一种用于非精确计算神经网络的电路设计方法与流程

文档序号:14872326发布日期:2018-07-07 01:19阅读:199来源:国知局

本发明涉及人工神经网络技术领域,特别涉及一种用于非精确计算神经网络的电路设计方法。



背景技术:

人工神经网络是机器学习领域的新兴热门算法,在人脸识别、目标检测等众多细分领域都取得了很好的成就。然而其对硬件性能有着极大的依赖,往往需要服务器级别的cpu和gpu完成训练和识别,在体积和功耗上都成本惊人。在智能设备日渐小型化的今天,人工神经网络的这种特点使得个人智能设备不得不始终联网运行,阻碍了其速度的进一步提升。而如果要为人工神经网络专门设计加速器芯片,其面积和功耗都需要非常压缩和节省。

非精确计算是信号处理和科学计算领域一个应用广泛的方法,其基本思想是对计算结果的准确度或精度要求不高时,在计算过程中进行适度的简化,从而节省运行时间、功耗等其他更在意的资源。人工神经网络天生非常符合非精确计算的应用条件,因为其运算过程中有大量个体意义不明中间数据,即使有小幅误差也不会对最后结果产生明显影响。另一方面,其反复训练过程也使其对计算误差可以逐渐适应。因此,在人工神经网络执行中采用非精确运算单元,是在需要提升速度、降低功耗时非常适合的手段。

但是,非精确运算单元并非某种特定的结构,整个神经网络中数以万计的运算单元分别采用哪一种非精确结构才能达到最佳效果也难以确定。非精确计算思想在神经网络运算中的具体应用还面临着困难。



技术实现要素:

(一)要解决的技术问题

鉴于上述技术问题,本发明提供了一种用于非精确计算神经网络的电路设计方法。

(二)技术方案

根据本发明的一个方面,提供了一种用于非精确计算神经网络的电路设计方法,包括以下步骤:确定位宽,用以确定非精确乘法器的位宽选择范围;生成电路结构,通过一种以电路中结点重要性排名为驱动的启发式随机算法,对每一种备选位宽,生成多种具体电路,所述多种具体电路就是所有可选的非精确乘法器结构;独立替换,将神经网络中的每个精确乘法器独立地替换为某种结构的非精确乘法器,得到的所有可能方案组成一个解空间;遍历比较,在所述解空间内随机选择一部分方案,遍历每种方案下非精确神经网络的训练和测试效果,得到最优解。

(三)有益效果

从上述技术方案可以看出,本发明的一种用于非精确计算神经网络的电路设计方法至少具有以下有益效果其中之一:

(1)依照本发明设计得到的神经网络电路,在运算结果准确度受到的影响不大的情况下,极大地减少了面积和功耗,提升了运算速度;

(2)本发明比较了极多种不同的方案,最后依照实际的训练和测试效果决定采纳结果,最大可能地保证了设计目的。

附图说明

图1为本发明实施例的用于非精确计算神经网络的电路设计方法的步骤流程图;

图2为根据本发明实施例的用于非精确计算神经网络的电路设计方法中的确定位宽步骤流程图;

图3为根据本发明实施例的用于非精确计算神经网络的电路设计方法中的生成电路结构步骤流程图;

图4为根据本发明实施例的用于非精确计算神经网络的电路设计方法中的独立替换步骤流程图;

图5为根据本发明实施例的用于非精确计算神经网络的电路设计方法中的遍历比较步骤流程图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。通过以下详细描述,本发明的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。

在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不悖离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。

在本发明的实施例中,提供了一种用于非精确计算神经网络的电路设计方法。图1为本发明实施例的用于非精确计算神经网络的电路设计方法的步骤流程图。如图1所示,本发明的用于非精确计算神经网络的电路设计方法包括以下步骤:确定位宽;生成电路结构;独立替换;遍历比较。

在确定位宽的步骤中,确定非精确乘法器的位宽选择范围。图2示出了根据本发明实施例的用于非精确计算神经网络的电路设计方法中的确定位宽步骤流程图。确定位宽的具体流程如下:确定上界;确定下界;确定步长。其中,确定上界步骤往往把精确乘法器的位宽作为上界,且在不需要对照的情况下,上界不包含在集合内;确定下界步骤往往把精确乘法器的位宽的一半作为下界,且包含在集合内;确定步长步骤往往把步长设为2,这是因为首先位宽一般为偶数,其次为了尽量多尝试不同的选择,粒度需要尽量细一些。

在生成电路结构的步骤中,通过一种以电路中结点重要性排名为驱动的启发式随机算法,对每一种备选位宽,生成多种具体电路,这些电路就是所有可选的非精确乘法器结构。图3示出了根据本发明实施例的用于非精确计算神经网络的电路设计方法中的生成电路结构步骤流程图,其本质是一种以电路中结点重要性排名为驱动的启发式随机算法。其具体流程如下:首先,给出当前位宽下精确乘法器的卡诺图和逻辑门电路;然后,计算该逻辑门电路的硬件开销;再后,进入遍历循环:将卡诺图中的任意若干位翻转,得到新卡诺图,计算新逻辑门电路的结果误差和硬件开销,如果结果误差在容忍度内,硬件开销是当前最小,则将当前卡诺图和逻辑门电路及其结果误差和硬件开销作为当前的最优解;最后,遍历完成后,误差在容忍度内硬件开销最小的新电路结构,即为当前位宽和误差容忍度下的非精确乘法器。

上述启发式随机算法得到了某一确定位宽和某一确定误差容忍度下的非精确乘法器。对每一种位宽,都可以有若干不同的误差容忍度。以32位精确乘法器为例,全部可能位宽就是30位、28位、26位、24位、22位、20位、18位和16位共8种,如果每种位宽下都设计5个不同误差容忍度的非精确乘法器,总计为8*5=40种。

在独立替换的步骤中,将神经网络中的每个精确乘法器独立地替换为某种结构的非精确乘法器,得到的所有可能方案组成一个解空间。图4示出了根据本发明实施例的用于非精确计算神经网络的电路设计方法中的独立替换步骤流程图。其具体流程如下:首先将神经网络中每个精确乘法器独立替换成任意一种非精确乘法器,得到解空间;然后,在解空间中依照一定算法随机筛选一部分。

上述的解空间很大,因为一个神经网络中有很多加权求和的操作,每个突触上都需要一个乘法器,其数量作为指数,底数为前两个步骤中得到的非精确乘法器结构种类数,解空间的大小就是这个幂。以上述40种非精确乘法器为例,假设一个神经网络中50000个乘法器,则该解空间的大小就是40∧50000。遍历这么大的解空间几乎是不可能的,因此需要从中选取一部分。这部分可以随机选取,也可以先根据位宽平均分配、根据误差容忍度以正态分布的比例,再随机选取。

在遍历比较的步骤中,首先在上述解空间内随机选择一部分方案,然后遍历每种方案下非精确神经网络的训练和测试效果,得到最优解。图5示出了根据本发明实施例的用于非精确计算神经网络的电路设计方法中的遍历比较步骤流程图。其具体流程如下:首先在经过上一步骤筛选后的较小解空间中选择一种替换方案,然后在该替换方案对应的非精确神经网络上进行一定次数的训练,再按照一定标准进行测试。如果测试结果是当前最好,则保留该替换方案为当前最优解,否则选择另一种替换方案进行训练和测试,直到遍历较小解空间。遍历完成后的最优解即作为本方法的最终结果。

本发明的用于非精确计算神经网络的电路设计方法比较了极多种不同的方案,最后依照实际的训练和测试效果决定采纳结果,最大可能地保证了设计目的。所得出的设计方案在运算结果准确度受到的影响不大的情况下,极大地减少了面积和功耗,提升了运算速度。

前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路、专用逻辑等)、固件、软件(例如,被承载在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。

需要说明的是,在附图或说明书正文中,未绘示或描述的实现方式,均为所属技术领域中普通技术人员所知的形式,并未进行详细说明。此外,上述对各元件和方法的定义并不仅限于实施例中提到的各种具体结构、形状或方式,本领域普通技术人员可对其进行简单地更改或替换。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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