面向参数量化神经网络专用处理器实现高精度计算的方法与流程

文档序号:17742831发布日期:2019-05-24 20:20阅读:329来源:国知局
面向参数量化神经网络专用处理器实现高精度计算的方法与流程

本发明属于神经网络技术领域,涉及一种面向参数量化神经网络专用处理器实现高精度计算的方法。



背景技术:

人工神经网络(简称ann)是一种根据对人脑结构和工作机理模拟的网络结构。ann包含若干神经元,神经元之间的连接有向带权重,网络可以通过对信息数据的学习训练,改变神经元间的连接权重,从而得到特定的从输入到输出间的关系,以此来处理信息。

现有的神经形态硬件需要存储与神经网络中神经元数量相同的参数,以及与神经网络中相互连接数相同的参数才可以进行计算操作,当需要实现复杂功能时,需要大规模的神经网络。随着神经网络规模的扩展,所需要存储的数据量会越来越大,需要消耗大量的存储资源才能储存神经网络的各种参数,同时,随着存储数据量的变大,神经网络计算速度也会受其影响下降。

已有的技术可以通过参数量化等手段,使神经网络参数量化。方式为根据神经网络结构和任务类型及具体指标要求,选取区间,将参数量化到一个区间内,实现神经网络参数的大量压缩。压缩后的神经网络参数可以存储在参数量化神经网络专用处理器的参数矩阵内,权值存储单元通常为可以存储若干位权重参数的sram或其他存储模块。从每位突触输入量化神经网络专用处理器后,将会经过多个权值存储单元,同时与经过的每个权值存储单元内的权重参数进行运算,最终输出,完成量化神经网络的计算。量化神经网络专用处理器节约了数据存储空间、运算功耗,提升了运算速度。

由于参数量化后的量化神经网络专用处理器每个权值存储单元所存参数位数有限,量化神经网络专用处理器的计算精度下降。需要一种技术克服现有技术中的不足,期望在保持量化神经网络专用处理器低功耗、节约存储空间的同时,实现更高的计算精度,本实例就是从此需求出发。



技术实现要素:

为了解决现有技术的问题,本发明提供了一种面向参数量化神经网络专用处理器实现高精度计算的方法。所述技术方案如下:

本发明实例提供了一种面向参数量化神经网络专用处理器实现高精度计算的方法,包括以下步骤:

获取训练完成后的神经网络参数,主要参数包含权重等。利用神经网络常用的随机梯度下降等方法训练神经网络,在满足指标要求后(如识别精度)完成训练,从而获得训练完成的神经网络,获得训练好的神经网络突触权值,将权值存储于量化神经网络专用处理器各个权值存储单元上。

进一步,根据神经网络计算期望获得的精度、量化神经网络专用处理器每个权值单元精度,确定每位突触权值在量化神经网络上映射时所需的输入路数、突触权值存储单元个数。每个原输入都扩展为n路,n为期望精度与量化神经网络专用处理器每个权值单元精度的商向上取整;每个原突触权值存储单元在输入路数扩展后,需要变为与扩展路数n相同的个数。量化神经网络专用处理器中所需的输入总路数为扩展路数n乘以原输入路数,量化神经网络专用处理器中所需的权值单元个数为扩展输入路数n乘以原权值单元个数。

进一步,确定计算参数的编码方式(包括但不限于二进制编码等权重码),并根据所选取编码方式分别对每路输入赋予权重,每路的权重与编码方式相关(如二进制编码,则每路的权重分别为2n,n为包含0到扩展输入路数n之间的自然数)。

进一步,根据输入赋予的权重对输入形式进行编码,可以通过单位时间内输入脉冲的数量或大小等形式进行编码。以权重最低位输入作为基准,根据各路输入被赋予的权重与最低位输入权重的比值bn,分别将各输入路编码为:单位时间内输入脉冲数等于基准输入单位时间内输入脉冲数的bn倍,或单位时间内的输入脉冲大小为基准输入脉冲大小的bn倍。

进一步,根据对输入赋予的权重,对权值矩阵各权值单元编码,编码最大位数与原量化神经网络专用处理器权值单元所能存储的数据位数相同。编码后的权值矩阵与带权输入通过相乘进行组合,组合结果等价于原神经网络中原输入与原权值相乘的结果。

进一步,在获得编码的结果后,保持激活函数不变或等价、神经网络层数相同、神经元结构不变,获得在参数量化神经网络专用处理器上的高精度计算网络。

进一步,将对各路输入信号的编码写入量化神经网络专用处理器的输入模块,同时将对权值矩阵的编码写入量化神经网络专用处理器各个权值存储单元,完成到参数量化神经网络专用处理器的映射。

进一步,根据编码后的输入形式输入并计算,通过计算所有的输入经过量化神经网络专用处理器后输出的脉冲数或脉冲大小,和对输入所赋予的权值(如用脉冲数的形式编码时,计算方式为接收到的脉冲数与最低位权重相乘),获得在神经网络专用处理器上进行高精度计算的计算结果。

本发明的有益效果是:

本发明实例提供的方法可以扩展计算参数的位数,实现浮点数、带符号数等多种形式的运算,以此来在量化神经网络专用处理器上实现高精度计算。在保持节省存储资源和功耗的性能上,以降低量化神经网络专用处理器的部分计算速度为代价,提高参数量化神经网络专用处理器的计算性能,以此实现神经网络对于高精度计算的需求。

附图说明

图1是本发明实例中提供的一种面向参数量化神经网络专用处理器实现高精度计算的方法流程图;

图2是现有量化神经网络专用处理器中的权值矩阵网络示意图;

图3是输入扩展后的量化神经网络专用处理器示意图;

图4是本方案用于实现神经网络高精度计算的量化神经网络专用处理器示意图;

图5是本方案用于实现乘法运算的一种示例方法示意图;

图6是本方案用于实现一种乘法运算时的输入情况。

具体实施方式

下面结合附图对本发明进行详细描述,以便本领域的技术人员能够更好地理解本发明。

参阅图1,一种面向参数量化神经网络专用处理器实现高精度计算的方法,包括以下步骤:

s1:获得神经网络计算参数:

神经网络通常使用随机梯度下降等方法来训练,在满足精度等指标要求后完成训练过程,即可获取训练完成的神经网络。训练结束后获得神经网络的权值等参数,现有的量化神经网络专用处理器将计算数据以权值矩阵的形式储存,如图2中3。图2中1为量化神经网络专用处理器的原突触输入模块,通常为寄存器等模块。图2中2为量化神经网络专用处理器的权值存储单元,用于储存计算时所用的权值,通常为sram等存储模块。

s2:确定计算精度及输入路数:

根据神经网络计算期望获得的精度、量化神经网络专用处理器每个权值单元精度,确定每位突触权值在量化神经网络上映射时所需的输入路数、突触权值存储单元个数。每个原输入都扩展为n路,n为期望精度与量化神经网络专用处理器每个权值单元精度的商向上取整;每个原突触权值存储单元在输入路数扩展后,需要变为与扩展路数n相同的个数。量化神经网络专用处理器中所需的输入总路数为扩展路数n乘以原输入路数,量化神经网络专用处理器中所需的权值单元个数为扩展输入路数n乘以原权值单元个数(参阅图3),图3中4为原单个突触输入扩展后的结构。

s3:确定参数编码方式:

确定计算参数的编码方式(包括但不限于二进制编码等权重码),并根据所选取编码方式分别对每路输入赋予权重,每路的权重与编码方式相关(如二进制编码,则每路的权重分别为2n,n为包含0到扩展输入路数n之间的自然数)。

s4:根据所选择编码方式获取每路输入权重:

分别对每路输入进行权重赋值,每路的权重与编码方式相同(如二进制编码,则每路的权重分别为2n,n为包含0到扩展输入路数n之间的自然数)。(参阅图4)。

s5:整合每路输入权重对每路信号编码:

根据输入赋予的权重对输入信号进行编码,可以通过单位时间内输入脉冲的数量或大小等形式进行编码。以权重最低位输入作为基准,根据各路输入被赋予的权重与最低位输入权重的比值bn,分别将各输入路编码为:单位时间内输入脉冲数等于基准输入单位时间内输入脉冲数的bn倍,或单位时间内的输入脉冲大小为基准输入脉冲大小的bn倍。

s6:对权值矩阵各权值存储单元进行编码:

根据对输入赋予的权重,对权值矩阵各权值单元编码,编码最大位数与原量化神经网络专用处理器权值单元所能存储的数据位数相同。编码后的权值矩阵与带权输入通过相乘进行组合,组合结果等价于原神经网络中原输入与原权值相乘的结果。例如用该方法进行5*6的乘法运算,将输入用二进制编码形式赋值,所需计算参数6可以通过(2^0)*0+2*1+(2^2)*1+(2^3)*0进行组合表达,根据该组合表达对权值矩阵的权值存储单元进行编码(参阅图5),图5来自于图4中标记4的部分结构。

s7:保持激活函数等价,神经网络层数不变,神经元结构不变,获得高精度计算网络:

获得编码的结果后,保持激活函数不变或等价、神经网络层数相同、神经元结构不变,在参数量化神经网络专用处理器上获得高精度计算网络。

s8:将获得的高精度计算网络映射到量化神经网络专用处理器:

将对每路输入的编码写入量化神经网络的输入模块,同时将对权值矩阵的编码写入原量化神经网络各个权值存储单元,完成到参数量化神经网络专用处理器的映射。

s9:输入并计算:

根据配置完成的计算网络进行计算,每路输入端按信号编码方式输入,进行计算。例如用该方法进行5*6的乘法运算时,在编码完成后输入方式参阅图6,图6中5为每路的输入脉冲情况。

s10:获得计算结果:

通过计算输入经过量化神经网络专用处理器后的输出和输入权值(如用脉冲数的形式编码时,计算方式为接收到的脉冲数与最低位权重相乘),获得在量化神经网络专用处理器上进行多位计算的结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1