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