[发明专利]神经网络运算模块及方法在审
申请号: | 201910235215.4 | 申请日: | 2019-03-26 |
公开(公告)号: | CN111753972A | 公开(公告)日: | 2020-10-09 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 上海寒武纪信息科技有限公司 |
主分类号: | G06N3/063 | 分类号: | G06N3/063 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 201306 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 神经网络 运算 模块 方法 | ||
一种神经网络运算模块,包括存储单元存储多层神经网络的输出神经元、权重精度和输出神经元梯度精度;控制器单元,用于获取定点化前输出神经元的绝对值的平均值Y1和定点化后输出神经元的绝对值的平均值Y2;若Y1/Y2预设阈值K,则获取多层神经网络的相邻两层输出神经元梯度精度时,根据相邻两层输出神经元梯度精度和权重精度获取误差传递精度预估值An;当An小于预设精度Ar时,减小相邻两层输出神经元梯度精度及权重精度;运算单元根据减小后精度表示相邻两层输出神经元梯度及权重,并进行后续运算。采用本发明实施例可以在满足运算需求的同时,减小了运算结果的误差和运算开销,节省了运算资源。
技术领域
本发明涉及神经网络领域,特别涉及一种神经网络运算模块及方法。
背景技术
定点数是一种可以指定小数点位置的数据格式,我们通常用位宽来表示一个定点数的数据长度。例如,16位定点数的位宽就是16。对于给定位宽的定点数,可表示数据的精度和可表示的数字范围是此消彼长的,如果可以表示的精度越大,则可表示的数字范围就越小。对于位宽为bitnum的定点数,且该定点数为有符号数,则第一位为符号位,若最大定点精度为2s。该定点表示法可以表示的范围为[neg,pos],其中pos=(2bitnum-1-1)*2s,neg=-(2bitnum-1)*2s。
在神经网络运算中,数据可以用定点数进行表示、运算。例如,在正向运算过程中,第L层的数据包括输入神经元X(l)、输出神经元Y(l)、权重W(l)。在反向运算过程中,第L层的数据包括输入神经元梯度输出神经元梯度权重梯度可以将上面的数据均用定点数进行表示,也可以用定点数进行运算。
在神经网络的训练过程通常包括正向运算和反向运算两个步骤,在反向运算时,输入神经元梯度、权重梯度和输出神经元梯度所需要的精度可能会出现变化,可能随着训练的过程增大,如果定点数的精度不够,会导致运算结果出现较大误差,甚至会导致训练失败。
发明内容
本发明实施例所要解决的技术问题在于神经网络运算过程中,输入神经元精度、权重精度或者输出神经元梯度精度不够,导致出现运算或训练的结果存在误差,本发明实施例提供一种神经网络运算模块及方法,动态调整输入神经元精度,权重精度和输出神经元梯度精度,降低了运算结果或训练结果的误差。
第一方面,本发明提供了一种神经网络运算模块,该神经网络运算模块用于执行多层神经网络的运算,包括:
存储单元,用于存储所述多层神经网络的权重精度和输出神经元梯度精度;
控制器单元,从所述存储单元获取所述多层神经网络相邻两层输出神经元梯度精度和权重精度Sw;根据所述相邻两层输出神经元梯度精度和权重精度Sw确定目标误差传递精度预估值An;当所述目标误差传输精度预估值An小于所述预设精度Ar时,减小所述相邻两层输出神经元梯度精度和所述权重精度Sw;
运算单元,用于根据减小后的相邻两层输出神经元梯度精度来表示所述相邻两层输出神经元梯度,根据减小后的权重精度Sw来表示所述多层神经网络的权重,并进行后续运算。
在一种可行的实施例中,所述相邻两层输出神经元梯度精度包括第L-1层输出神经元梯度精度和第L层输出神经元梯度精度在根据所述相邻两层输出神经元梯度精度和权重精度确定目标误差传递精度预估值的方面,所述控制器单元具体用于:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海寒武纪信息科技有限公司,未经上海寒武纪信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910235215.4/2.html,转载请声明来源钻瓜专利网。