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