一种用于执行人工神经网络正向运算的装置和方法制造方法及图纸

技术编号:16529480 阅读:18 留言:0更新日期:2017-11-09 21:23
一种用于执行人工神经网络正向运算的装置和方法,该装置包括:浮点数据统计模块,用于对所需各类型数据进行统计分析,得到定点数据的小数点位置Point locaiton;数据转换单元,用于根据定点数据的小数点位置来实现长位浮点数据类型向短位数定点数据类型的转换;定点数据运算模块,用于对短位数定点数据进行人工神经网络正向运算。本发明专利技术的装置通过对多层人工神经网络正向运算中的数据使用短位数定点表示,并使用相对应的定点运算模块,实现人工神经网络短位数定点的正向运算,从而极大提高硬件的性能功耗比。

【技术实现步骤摘要】
一种用于执行人工神经网络正向运算的装置和方法
本专利技术涉及人工神经网络运算
,更具体地涉及一种用于执行人工神经网络正向运算的装置和方法。
技术介绍
多层人工神经网络被广泛应用于模式识别、图像处理、函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。传统的人工神经网络正向运算对数据的存储通常采用的是32位浮点数据类型,但在大部分人工神经网络的正向运算中,同一类型的数据都会集中在某一数据范围之内,而32位浮点所能表示的数据范围远远大于正向运算同一类型数据的数据范围,采用32位浮点数据类型存在着大量的冗余,增加了硬件的面积开销。
技术实现思路
有鉴于此,本专利技术的一个目的在于提供一种用于执行人工神经网络正向运算的装置,本专利技术的另一个目的在于提供一种执行人工神经网络正向运算的方法,以解决上述技术问题中的至少之一。为了实现上述目的,作为本专利技术的一个方面,本专利技术提供了一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,其中,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置Pointlocation;所述数据转换单元用于根据所述浮点数据统计模块得到的所述小数点位置Pointlocation来实现长位数浮点数据类型向短位数定点数据类型的转换;所述浮点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算。其中,所述浮点数据统计模块包括数据提取单元、统计单元和分析单元,其中,所述数据提取单元用于提取基于长位数浮点数据的正向运算中各不同类型的数据;所述统计单元用于统计同一类型数据的数据范围及各数据段的数据分布情况;所述分析单元根据统计单元统计的结果,得出用短位数定点表示各个类型数据应当设定的小数点位置Pointlocation。其中,所述用于执行人工神经网络正向运算的装置还包括舍入单元,所述舍入单元用于在运算结束后,对超出短位数定点精度范围的数据进行舍入操作。其中,所述舍入单元选自随机舍入单元、四舍五入单元、向上舍入单元、向下舍入单元、截断舍入单元中的任一种;其中,所述随机舍入单元执行如下操作:其中,y表示随机舍入后的短位定点数据,x表示随机舍入前的长位浮点数据,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location,表示对原数据x直接截得短位数定点数据所得的数,w.p.表示概率,即随机舍入获得的数据y为的概率为为的概率为所述四舍五入单元执行如下操作:其中,y表示四舍五入后的短位定点数据,x表示四舍五入前的长位浮点数据,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location,为ε的整数倍,其值为小于或等于x的最大数;所述向上舍入单元执行如下操作:其中,y表示向上舍入后的短位定点数据,x表示向上舍入前的长位浮点数据,为ε的整数倍,其值为大于或等于x的最小数,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location;所述向下舍入单元执行如下操作:其中,y表示向上舍入后的短位定点数据,x表示向上舍入前的长位浮点数据,为ε的整数倍,其值为小于或等于x的最大数,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location;所述截断舍入单元执行如下操作:y=[x];其中,y表示截断舍入后的短位定点数据,x表示截断舍入前的长位浮点数据,[x]表示对原数据x直接截得短位数定点数据所得的数。其中,所述数据转换单元先通过所述舍入单元对待处理的数据进行舍入操作,再根据浮点数据统计模块得到的小数点位置Pointlocation来实现长位数浮点数据类型向短位数定点数据类型的转换。其中,所述用于执行人工神经网络正向运算的装置还包括运算缓存单元,所述运算缓存单元采用长位数浮点数据类型存储正向运算中加法和乘法的中间运算结果。作为本专利技术的另一个方面,本专利技术还提供了一种执行人工神经网络正向运算的方法,包括以下步骤:步骤1,获取所述人工神经网络各个层的长位数浮点数据,包括每一层的权值、偏置和/或输入输出值;步骤2,对获取的所述长位数浮点数据,统计落在一列逐渐缩小的区间:[-2X-1-i,2X-1-i-2-i]i=0,1,…,N中的比例,其中X是短位数定点数据类型的总位数;得到的相应的比例记为:p0,p1,…,pN,其中N是预先设定的一个正整数;步骤3,对于所述长位数浮点数据,预先设定一个溢出率EPL,取小数点位置Pointlocation为:max{i|pi≥1-EPL,i∈{0,1,…,N}};即在0,1,…,N中取最大的i,使得pi≥1-EPL;步骤4,根据所述小数点位置Pointlocation,将所有所述长位数浮点数据采用短位数定点数据类型表示;步骤5,对所述短位数定点数据执行人工神经网络正向运算。其中,在所述执行人工神经网络正向运算的方法中,对所述人工神经网络不同层、不同类型的数据分别进行统计分析,获得相对于所述人工神经网络不同类型的数据的小数点位置Pointlocation,并分别进行计算。其中,所述对短位数定点数据执行人工神经网络正向运算的步骤中,对于正向运算中的加法运算和乘法运算,将其中间计算结果采用长位数浮点数据形式存储。其中,在执行完所述人工神经网络正向运算之后,将参与反向运算的权值和偏置数据采用在正向运算时保留的长位数浮点数据表示的副本、其余数据采用由短位数定点数据转换成的长位数浮点数据后再进行反向运算。基于上述技术方案可知,本专利技术的运算装置和方法具有如下有益效果:可以实现多层人工神经网络的短位数定点形式的正向运算,从而极大地减少了存储网络参数所需的空间,减少硬件的面积开销,优化了硬件的面积功耗比;训练完成的神经网络模型参数数据可用于专用神经网络加速器,由于采用了短位定点形式表示数据,所以可以降低对专用神经网络加速器传输带宽的要求,同时,减少计算带来的功耗。附图说明图1为根据本专利技术一实施例的用于存储数据的定点数据结构的具体表示方法;图2为根据本专利技术一实施例的用于执行人工神经网络正向运算的装置中浮点数据统计模块的示例框图;图3为根据本专利技术一实施例的用于执行人工神经网络正向运算的装置中正向运算模块的短位数定点计算部分示例框图;图4为根据本专利技术一实施例的神经网络正向运算过程的示例框图;图5示意性示出了根据本专利技术一实施例的用于执行人工神经网路正向运算装置的运算流程示例框图;图6为根据本专利技术一实施例的算法实施总体流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术作进一步的详细说明。通过以下详细描述,本专利技术的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。在本说明书中,下述用于描述本专利技术原理的各种实施例只是说明,不应该以任何方式解释为限制专利技术的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本专利技术的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应本文档来自技高网...
一种用于执行人工神经网络正向运算的装置和方法

【技术保护点】
一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,其特征在于,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置Point location;所述数据转换单元用于根据所述浮点数据统计模块得到的所述小数点位置Point location来实现长位数浮点数据类型向短位数定点数据类型的转换;所述定点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算。

【技术特征摘要】
1.一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、数据转换单元和定点数据运算模块,其特征在于,所述浮点数据统计模块用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到小数点位置Pointlocation;所述数据转换单元用于根据所述浮点数据统计模块得到的所述小数点位置Pointlocation来实现长位数浮点数据类型向短位数定点数据类型的转换;所述定点数据运算模块用于在所述数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数定点数据类型表示之后,对所述短位数定点数据进行人工神经网络正向运算。2.如权利要求1所述的用于执行人工神经网络正向运算的装置,其特征在于,所述浮点数据统计模块包括数据提取单元、统计单元和分析单元,其中,所述数据提取单元用于提取基于长位数浮点数据的正向运算中各种不同类型的数据;所述统计单元用于统计同一类型数据的数据范围及各数据段的数据分布情况;所述分析单元根据统计单元统计的结果,得出用短位数定点表示各个类型数据应当设定的小数点位置Pointlocation。3.如权利要求1所述的用于执行人工神经网络正向运算的装置,其特征在于,所述用于执行人工神经网络正向运算的装置还包括舍入单元,所述舍入单元用于在运算结束后,对超出短位数定点精度范围的数据进行舍入操作。4.如权利要求3所述的用于执行人工神经网络正向运算的装置,其特征在于,所述舍入单元选自随机舍入单元、四舍五入单元、向上舍入单元、向下舍入单元、截断舍入单元中的任一种;其中,所述随机舍入单元执行如下操作:其中,y表示随机舍入后的短位定点数据,x表示随机舍入前的长位浮点数据,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location,表示对原数据x直接截得短位数定点数据所得的数,w.p.表示概率,即随机舍入获得的数据y为的概率为为的概率为所述四舍五入单元执行如下操作:其中,y表示四舍五入后的短位定点数据,x表示四舍五入前的长位浮点数据,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location,为ε的整数倍,其值为小于或等于x的最大数;所述向上舍入单元执行如下操作:其中,y表示向上舍入后的短位定点数据,x表示向上舍入前的长位浮点数据,为ε的整数倍,其值为大于或等于x的最小数,ε为当前短位数定点数据表示格式所能表示的最小正整数,即2-Point_location;所述向下舍入单元执行如下操作:其中,y表示向上舍入后的短位定点数据,x表示向上舍入前的长位浮点...

【专利技术属性】
技术研发人员:陈云霁刘少礼郭崎陈天石
申请(专利权)人:北京中科寒武纪科技有限公司
类型:发明
国别省市:北京,11

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

1