首页 / 专利库 / 人工智能 / 人工神经网络 / 人工神经元 / 用于执行人工神经网络正向运算的装置和方法

用于执行人工神经网络正向运算的装置和方法

阅读:1014发布:2020-07-03

专利汇可以提供用于执行人工神经网络正向运算的装置和方法专利检索,专利查询,专利分析的服务。并且一种运算装置和方法,该装置包括:浮点数据统计模 块 ,用于对所需各类型数据进行统计分析,得到指数位偏移量offset及指数位的长度EL;浮点数据转换模块,用于根据指数位偏移量offset及指数位的长度EL来实现长位数浮点数据类型向短位数浮点数据类型的转换;浮点数据运算模块,用于对短位数浮点数据进行 人工神经网络 正向运算。本 发明 的运算装置通过对多层人工神经网络正向运算中的数据使用短位数浮点表示,并使用相对应的浮点运算模块,实现人工神经网络短位数浮点的正向运算,从而极大提高 硬件 的性能功耗比。,下面是用于执行人工神经网络正向运算的装置和方法专利的具体信息内容。

1.一种用于执行人工神经网络正向运算的装置,其特征在于,所述装置包括:
浮点数据转换单元,用于根据指数位偏移量offset及指数位的长度EL来实现长位数浮点数据类型向短位数浮点数据类型的转换;其中,所述神经网络中同一层、同一类被的数据均对应一组所述指数位偏移量offset及指数位的长度EL;
浮点数据运算模,用于在所述浮点数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数浮点数据类型表示之后,对所述短位数浮点数据进行人工神经网络正向运算。
2.如权利要求1所述的用于执行人工神经网络正向运算的装置,其特征在于,所述装置还包括:
浮点数据统计模块,用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到所述指数位偏移量offset及指数位的长度EL。
3.如权利要求2所述的用于执行人工神经网络正向运算的装置,其特征在于,所述浮点数据统计模块包括:
数据提取单元,用于提取基于长位数浮点数据的正向运算中各不同类型的数据;
统计单元,用于统计同一类型数据的数据范围及各数据段的数据分布情况;
分析单元,用于根据所述统计单元统计的结果,得出用短位数浮点数据表示各个类型数据时设定的指数位长度EL及指数位偏移offset。
4.如权利要求1或2所述的用于执行人工神经网络正向运算的装置,其特征在于,所述用于执行人工神经网络正向运算的装置还包括:
舍入单元,用于在运算结束后,对超出短位数浮点精度范围的数据进行舍入操作。
5.如权利要求4所述的用于执行人工神经网络正向运算的装置,其特征在于,所述舍入单元为随机舍入单元、四舍五入单元、向上舍入单元、向下舍入单元和截断舍入单元中的任一种;
其中,所述随机舍入单元执行如下操作:
其中,y表示随机舍入后的短位数浮点数据,x表示随机舍入前的长位数浮点数据,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL), 表示对所述x直接截得短位数浮点数据所得的数,w.p.表示概率,即随机舍入获得的数据y为 的概率为为 的概率为
所述四舍五入单元执行如下操作:
其中,y表示四舍五入后的短位数浮点数据,x表示四舍五入前的长位数浮点数据,ε为offset-(X-1-EL)
当前短位数浮点数据类型所能表示的最小正整数,即2 , 为ε的整数倍,其值为小于或等于x的最大数;
所述向上舍入单元执行如下操作:
其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为大于或等于x的最小数,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL);
所述向下舍入单元执行如下操作:
其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为小于或等于x的最大数,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL);
所述截断舍入单元执行如下操作:
y=[x];
其中,y表示截断舍入后的短位数浮点数据,x表示截断舍入前的长位数浮点数据,[x]表示对原数据x直接截得短位数浮点数据所得的数。
6.如权利要求4所述的用于执行人工神经网络正向运算的装置,其特征在于,所述浮点数据转换单元先通过所述舍入单元对待处理的数据进行舍入操作,再根据所述浮点数据统计模块得到的指数位偏移量offset及指数位的长度EL来实现长位数浮点数据类型向短位数浮点数据类型的转换。
7.如权利要求4或5所述的用于执行人工神经网络正向运算的装置,其特征在于,所述装置还包括:
运算缓存单元,用于采用长位数浮点数据类型存储正向运算中加法运算和乘法运算产生的中间运算结果。
8.根据权利要求7所述的用于执行人工神经网络的正向运算的装置,其特征在于,所述数据转换单元还用于:
在所述舍入单元对超出短位数浮点精度范围的数据进行舍入操作后,将所述运算缓存单元中的数据转换为短位数浮点数据类型表示的数据。
9.一种执行人工神经网络正向运算的方法,其特征在于,包括以下步骤:
通过已训练好的神经网络32位浮点模型获取所述人工神经网络各个层的长位数浮点数据,包括每一层的权值、偏置、输入神经元和输出神经元;
对获得的所述长位数浮点数据进行分析,获得存储所述长位数浮点数据采用短位数浮点数据类型表示时所需的指数位偏移量offset及指数位的长度EL;
根据所述指数位偏移量offset及指数位的长度EL,将所有所述长位数浮点数据采用短位数浮点数据类型表示;
对所述短位数浮点数据执行人工神经网络正向运算。
10.如权利要求9所述的方法,其特征在于,所述对获得的长位数浮点数据进行分析的步骤中,对所述人工神经网络不同层、不同类型的数据分别进行分析,获得相对于所述人工神经网络不同类型的数据的指数位偏移量offset及指数位的长度EL。
11.如权利要求9所述的方法,其特征在于,所述对短位数浮点数据执行人工神经网络正向运算的步骤中,对于正向运算中的加法运算和乘法运算产生的中间计算结果采用长位数浮点数据类型存储。
12.如权利要求9所述的方法,其特征在于,在执行完所述人工神经网络正向运算之后,将参与反向运算的权值和偏置数据采用在正向运算时保留的长位数浮点数据类型表示的副本,其余数据由短位数浮点数据类型转换成的长位数浮点数据类型后再进行反向运算。
13.如权利要求9-12任一项所述的方法,其特征在于,将所述长位数浮点数据转换为短位数浮点数据的过程中需要对所述长位数浮点数据进行舍入操作,
其中所述舍入单元为随机舍入单元、四舍五入单元、向上舍入单元、向下舍入单元和截断舍入单元中的任一种;
其中,所述随机舍入单元执行如下操作:
其中,y表示随机舍入后的短位数浮点数据,x表示随机舍入前的长位数浮点数据,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL), 表示对所述x直接截得短位数浮点数据所得的数,w.p.表示概率,即随机舍入获得的数据y为 的概率为为 的概率为
所述四舍五入单元执行如下操作:
其中,y表示四舍五入后的短位数浮点数据,x表示四舍五入前的长位数浮点数据,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL), 为ε的整数倍,其值为小于或等于x的最大数;
所述向上舍入单元执行如下操作:
其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为大于或等于x的最小数,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL);
所述向下舍入单元执行如下操作:
其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为小于或等于x的最大数,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL);
所述截断舍入单元执行如下操作:
y=[x];
其中,y表示截断舍入后的短位数浮点数据,x表示截断舍入前的长位数浮点数据,[x]表示对原数据x直接截得短位数浮点数据所得的数。

说明书全文

用于执行人工神经网络正向运算的装置和方法

技术领域

[0001] 本发明涉及人工神经网络技术领域,更具体地涉及一种用于执行人工神经网络正向运算的装置和方法。

背景技术

[0002] 多层人工神经网络被广泛应用于模式识别图像处理、函数逼近和优化计算等领域,多层人工网络在近年来由于其较高的识别准确度和较好的可并行性,受到学术界和工业界越来越广泛的关注。
[0003] 传统的人工神经网络正向运算对数据的存储通常采用的是32位浮点数据类型,但在大部分人工神经网络的正向运算中,同一类型的数据都会集中在某一数据范围之内,而32位浮点所能表示的数据范围远远大于正向运算同一类型数据的数据范围,采用32位浮点数据类型存在着大量的冗余,增加了硬件的面积开销。

发明内容

[0004] 有鉴于此,本发明的一个目的在于提供一种用于执行人工神经网络正向运算的装置,本发明的另一个目的在于提供一种执行人工神经网络正向运算的方法,以解决上述技术问题中的至少之一。
[0005] 为了实现上述目的,作为本发明的一个方面,本发明提供了一种用于执行人工神经网络正向运算的装置,包括
[0006] 浮点数据统计模,用于对所述人工神经网络正向运算所需的各个类型的数据进行统计分析,得到指数位偏移量offset及指数位的长度EL;
[0007] 所述浮点数据转换单元,用于根据所述指数位偏移量offset及指数位的长度EL来实现长位数浮点数据类型向短位数浮点数据类型的转换;
[0008] 浮点数据运算模块,用于在所述浮点数据转换单元将所有所述人工神经网络正向运算中所需的输入、权值和/或偏置数据均采用短位数浮点数据类型表示之后,对所述短位数浮点数据进行人工神经网络正向运算。
[0009] 其中,所述浮点数据统计模块包括:
[0010] 数据提取单元,用于提取基于长位数浮点数据的正向运算中各不同类型的数据;
[0011] 统计单元,用于统计同一类型数据的数据范围及各数据段的数据分布情况;
[0012] 分析单元,用于根据所述统计单元统计的结果,得出用短位数浮点数据表示各个类型数据时设定的指数位长度EL及指数位偏移offset。
[0013] 其中,所述用于执行人工神经网络正向运算的装置还包括:
[0014] 舍入单元,用于在运算结束后,对超出短位数浮点精度范围的数据进行舍入操作。
[0015] 其中,所述舍入单元为随机舍入单元、四舍五入单元、向上舍入单元、向下舍入单元和截断舍入单元中的任一种;
[0016] 其中,所述随机舍入单元执行如下操作:
[0017]
[0018] 其中,y表示随机舍入后的短位数浮点数据,x表示随机舍入前的长位数浮点数据,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL), 表示对所述x直接截得短位数浮点数据所得的数,w.p.表示概率,即随机舍入获得的数据y为 的概率为为 的概率为
[0019] 所述四舍五入单元执行如下操作:
[0020]
[0021] 其中,y表示四舍五入后的短位数浮点数据,x表示四舍五入前的长位数浮点数据,offset-(X-1-EL)ε为当前短位数浮点数据类型所能表示的最小正整数,即2 , 为ε的整数倍,其值为小于或等于x的最大数;
[0022] 所述向上舍入单元执行如下操作:
[0023]
[0024] 其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为大于或等于x的最小数,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL);
[0025] 所述向下舍入单元执行如下操作:
[0026]
[0027] 其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为小于或等于x的最大数,ε为当前短位数浮点数据类型所能表示的offset-(X-1-EL)最小正整数,即2 ;
[0028] 所述截断舍入单元执行如下操作:
[0029] y=[x];
[0030] 其中,y表示截断舍入后的短位数浮点数据,x表示截断舍入前的长位数浮点数据,[x]表示对原数据x直接截得短位数浮点数据所得的数。
[0031] 其中,所述浮点数据转换单元先通过所述舍入单元对待处理的数据进行舍入操作,再根据浮点数据统计模块得到的指数位偏移量offset及指数位的长度EL来实现长位数浮点数据类型向短位数浮点数据类型的转换。
[0032] 其中,所述装置还包括:
[0033] 运算缓存单元,用于采用长位数浮点数据类型存储正向运算中加法运算和乘法运算产生的中间运算结果。
[0034] 作为本发明的另一个方面,本发明还提供了一种执行人工神经网络正向运算的方法,包括以下步骤:
[0035] 获取所述人工神经网络各个层的长位数浮点数据,包括每一层的权值、偏置和/或输入输出值;
[0036] 对获得的所述长位数浮点数据进行分析,获得存储所述长位数浮点数据所需的指数位偏移量offset及指数位的长度EL;
[0037] 根据所述指数位偏移量offset及指数位的长度EL,将所有所述长位数浮点数据采用短位数浮点数据类型表示;
[0038] 对所述短位数浮点数据执行人工神经网络正向运算。
[0039] 其中,所述对获得的长位数浮点数据进行分析的步骤中,对所述人工神经网络不同层、不同类型的数据分别进行分析,获得相对于所述人工神经网络不同类型的数据的指数位偏移量offset及指数位的长度EL。
[0040] 其中,所述对短位数浮点数据执行人工神经网络正向运算的步骤中,对于正向运算中的加法运算和乘法运算产生的中间计算结果采用长位数浮点数据类型存储。
[0041] 其中,在执行完所述人工神经网络正向运算之后,将参与反向运算的权值和偏置数据采用在正向运算时保留的长位数浮点数据类型表示的副本、其余数据由短位数浮点数据类型转换成的长位数浮点数据类型后再进行反向运算。
[0042] 基于上述技术方案可知,本发明的运算装置和方法具有如下有益效果:可以实现多层人工神经网络的短位数浮点数据类型的正向运算,从而极大地减少了存储参与神经网络运算的数据所需的空间,减少硬件的面积开销,优化了硬件的面积功耗比;训练完成的神经网络模型参数可用于专用神经网络加速器,由于采用了短位数浮点数据类型表示数据,所以可以降低对专用神经网络加速器传输带宽的要求,同时,减少计算带来的功耗。附图说明
[0043] 图1为根据本发明一实施例的用于存储数据的短位数浮点数据类型的具体表示方法;
[0044] 图2为根据本发明一实施例的用于执行人工神经网络正向运算的装置中浮点数据统计模块的示例框图
[0045] 图3为根据本发明一实施例的用于执行人工神经网络正向运算的装置中正向运算模块的短位数浮点计算部分的示例框图;
[0046] 图4为根据本发明一实施例的神经网络正向运算过程的示例框图;
[0047] 图5示意性示出了根据本发明一实施例的用于执行人工神经网络正向运算装置的运算流程示例框图。

具体实施方式

[0048] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。通过以下详细描述,本发明的其它方面、优势和突出特征对于本领域技术人员将变得显而易见。
[0049] 在本说明书中,下述用于描述本发明原理的各种实施例只是说明,不应该以任何方式解释为限制发明的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本发明的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不悖离本发明的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同附图标记用于相似功能和操作。
[0050] 本发明公开了一种用于执行人工神经网络正向运算的装置,包括浮点数据统计模块、浮点数据转换单元以及相应的浮点数据运算模块。其中,上述浮点数据统计模块用于统计及计算,以获得在人工神经网络正向运算中存储各个类型数据所需的指数位偏移offset及指数位所需的比特位数;浮点数据转换单元用于根据所述指数位偏移offset和指数位实现短位数浮点数据类型与长位数浮点数据类型,例如32位浮点数据类型的转换;浮点运算模块用于完成针对短位数浮点数据所需的各类运算。
[0051] 其中,“长位数浮点数据”表示原来的浮点数据,例如32位浮点数据,也可以是针对标准的64位或者16位浮点数等,这里只是以32位为具体实施例进行说明;“较少位数浮点数据”,又名“短位数浮点数据”,表示相对于原来的浮点数据来说,采用更少的位数来表示的浮点数据。
[0052] 根据本发明实施例的多层人工神经网络的正向运算,包括两层或者两层以上的多个神经元。对于正向运算中所需的输入神经元、权值、偏置等数据,均采用短位数浮点数据类型表示,并用短位数浮点数据类型参与各个层之间的运算。
[0053] 图1示出了根据本发明一实施例的用于存储数据的短位数浮点数据类型的具体表示方法。其中,1位bit位用于表示符号,M位用于表示指数部分,N位用于表示有效位部分,由于浮点表示法要求第一位有效数字不能为0,对于二进制来说,只能为1,因此有效位的最高位1可以作为隐藏位,不写入内存,所以实际表示的浮点数有效位数为(N+1)位;相比于32位浮点数据表示形式,本发明采用的短位数浮点数据类型除了占用比特位数更少外,对于神经网络中同一层、同一类型的数据,如第一个卷积层的所有权值数据,还另外设置了两个标志位,其中标志位offset用于记录指数位的初始偏移,实际指数位表示数据=指数位表示数据+偏移量(offset)表示数据,标志位EL用于记录指数位所占用的比特数M,则有效位所占比特数N=X-1-M。
[0054] 图2示出了浮点数据统计模块的示例框图。包括数据提取单元21、统计单元22和分析单元23。该模块的目的是,通过提取采用32位浮点数据类型的神经网络中的所有32位浮点数据,并通过分析这些数据得到神经网络中采用短位数浮点数据类型表示的各个不同类型数据所需的指数位偏移(offset)及指数位长度(EL),以便在之后的短位数浮点正向运算中有更好的效果。其中,数据提取单元21用于提取正向训练中以32位浮点数据类型表示的各个不同类型的数据;统计单元22用于统计同一类型数据的数据范围及在各个数据段的分布情况;分析单元23根据统计单元22统计的结果,得出用短位数浮点数据类型表示各个类型数据应当设定的指数位长度(EL)及指数位偏移(offset),其中,指数位长度(EL)的设定使得可表示的数据范围尽可能包含该类型的所有数据。
[0055] 图3示出了正向运算模块的短位数浮点数据计算部分的示例框图。包括运算缓存单元31、数据转换单元32、舍入单元33。其中:运算缓存单元31用精度较高的数据类型存储正向运算过程中产生的中间结果,这是由于在正向运算时,加法运算或者乘法运算可能会导致数据范围扩大;运算结束后,对超出短位数浮点数据类型的精度范围的数据,进行舍入操作,接着通过数据转换单元32将运算缓存单元31的数据转换为短位数浮点数据类型表示的数据。
[0056] 舍入单元33可以完成对超出短位数浮点数据类型的精度范围的数据进行舍入操作,该单元可以为随机舍入单元、四舍五入单元、向上舍入单元、向下舍入单元、截断舍入单元中的任一种,通过不同的舍入单元可以实现对超出短位数浮点数据类型的精度范围数据进行不同的舍入操作。
[0057] 随机舍入单元执行如下操作:
[0058]
[0059] 其中,y表示随机舍入后的短位数浮点数据,x表示随机舍入前的32位数浮点数据,ε为上述短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL), 表示对原数据x直接截得短位数浮点数据所得的数(类似于对小数做向下取整操作),w.p.表示概率,即随机舍入获得的数据y为 的概率为 为 的概率为
[0060] 四舍五入单元执行如下操作:
[0061]
[0062] 其中,y表示四舍五入后的短位数浮点数据,x表示四舍五入前的长位数浮点数据,ε为短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL), 为ε的整数倍,其值为小于或等于x的最大数。
[0063] 向上舍入单元执行如下操作:
[0064]
[0065] 其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为大于或等于x的最小数,ε为短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL)。
[0066] 向下舍入单元执行如下操作:
[0067]
[0068] 其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为小于或等于x的最大数,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL)。
[0069] 截断舍入单元执行如下操作:
[0070] y=[x];
[0071] 其中,y表示截断舍入后的短位数浮点数据,x表示截断舍入前的长位数浮点数据,[x]表示对原数据x直接截得短位数浮点数据所得的数。
[0072] 本发明还公开了一种执行人工神经网络正向运算的方法,具体实施步骤为:
[0073] 通过已训练好的神经网络32位浮点模型获取神经网络各个层的32位浮点数据,包括每一层的权值、偏置、输入神经元、输出神经元及其它数据。
[0074] 对不同层,不同类型数据单独进行分析,获得各类型数据采用短位数浮点类型表示时所需要的参数,包括需要多少位作为指数位,多少位作为有效位数,以及指数位所需表示的范围等。
[0075] 对统计得到的短位数浮点数据类型表示的数据用于神经网络正向运算,即神经网络正向运算中所有数据采用短位数浮点数据类型表示,同时,对神经网络的权值和偏置数据保留一份以32位浮点数据类型表示的副本,然后做正向训练。对于正向运算中,某些运算的中间计算结果的数据范围扩大,如加法运算、乘法运算等,需要用缓存空间存储中间计算结果,中间计算结果采用32位浮点数据类型存储,计算完后再转换为相应的以短位数浮点数据类型表示的数据。32位浮点数据转换为短位数浮点数据的过程需要用舍入方式,其中包括随机舍入、四舍五入舍入、向上舍入、向下舍入和截断舍入等,分别表示如下:
[0076] 随机舍入的具体操作如下式所示:
[0077]
[0078] 其中,y表示随机舍入后的短位数浮点数据,x表示随机舍入前的32位浮点数据,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL), 表示对x直接截得短位数浮点数据所得的数(类似于对小数做向下取整操作),w.p.表示概率,即随机舍入获得的数据y为 的概率为 为 的概率为
[0079] 四舍五入的具体操作如下式所示:
[0080]
[0081] 其中,y表示四舍五入后的短位数浮点数据,x表示四舍五入前的长位数浮点数据,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL), 为ε的整数倍,其值为小于或等于x的最大数。向上舍入的具体操作如下式所示:
[0082]
[0083] 其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为大于或等于x的最小数,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL)。
[0084] 向下舍入的具体操作如下式所示:
[0085]
[0086] 其中,y表示向上舍入后的短位数浮点数据,x表示向上舍入前的长位数浮点数据,为ε的整数倍,其值为小于或等于x的最大数,ε为当前短位数浮点数据类型所能表示的最小正整数,即2offset-(X-1-EL)。
[0087] 截断舍入的具体操作如下式所示:
[0088] y=[x];
[0089] 其中,y表示截断舍入后的短位数浮点数据,x表示截断舍入前的长位数浮点数据,[x]表示对原数据x直接截得短位数浮点数据所得的数。
[0090] 正向运算结束后,做反向运算时,需要通过短位数转32位浮点数据转换单元将正向运算中的数据转换为以32位浮点数据类型表示的数据,然后参与反向运算,其中,参与反向运算的权值和偏置数据用正向运算中保留的32位浮点数据类型表示的副本,反向运算结束后,在通过32位转短位数浮点数据转换单元转为以短位数浮点数据类型表示的数据参与之后的正向运算,同时,保留以32位浮点数据类型表示的神经网络的权值和偏置数据为副本,转换过程中需要做舍入操作,操作同正向运算中的舍入操作。
[0091] 重复进行如上所述的正向及反向运算直到神经网络训练完成。
[0092] 图4为根据本发明一实施例的单层人工神经网络正向运算流程图。该流程图描述利用本发明的装置和指令集实现的一种单层神经网络正向运算的过程。对于每一层来说,首先对输入神经元向量进行加权求和计算出本层的中间结果向量。该中间结果向量加偏置并激活得到输出神经元向量。将输出神经元向量作为下一层的输入神经元向量。
[0093] 图5示意性示出了根据本发明一实施例的运算流程示例框图。其中,正向运算模块51包含了图3所示的短位数浮点数据计算部分,正向运算得到的除权值、偏置外的数据在进行反向传播时要先通过短位数-32位浮点转换单元53转换成以32位浮点数据类型表示的数据进行反向传播运算,反向运算模块53进行的反向传播运算结束后,需要通过32位-短位数浮点数据转换单元54转换成以短位数浮点数据类型表示的数据,在转换过程中,需对超出短位数浮点数据类型精度范围的数据进行舍入操作,此处舍入操作由舍入单元55完成,具体过程同图3中的舍入操作。
[0094] 通过将正向运算的数据采用短位数浮点数据类型表示,充分利用了短位数浮点数据类型的数据范围空间,相对于32位浮点数据类型,极大地减少了存储参与神经网络运算数据所需的空间,优化了硬件的面积功耗比。
[0095] 前面的附图中所描绘的进程或方法可通过包括硬件(例如,电路专用逻辑等)、固件软件(例如,被承载在非瞬态计算机可读介质上的软件),或两者的组合的处理逻辑来执行。虽然上文按照某些顺序操作描述了进程或方法,但是,应该理解,所描述的某些操作能以不同顺序来执行。此外,可并行地而非顺序地执行一些操作。
[0096] 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈