神经网络计算处理模型的制作方法

文档序号:16471188发布日期:2019-01-02 23:07阅读:225来源:国知局
神经网络计算处理模型的制作方法

本发明涉及类脑计算技术领域,具体涉及一种神经网络计算处理模型。



背景技术:

人工神经网络(artificialneuralnetwork,ann)是一种由大量节点(神经元)互相联接构成的运算模型,是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。具体地,每个节点代表一种特定的激励函数,每两个节点间的连接都代表一个对于通过该连接信号的权重(相当于人工神经网络的记忆)。人工神经网络的输出取决于网络结构、权重值和激励函数。当前,全连接神经网络、卷积神经网络被广泛使用。脉冲神经网络作为脑启发型网络结构也备受关注。而往往一个神经网络仅能执行一种神经网络算法,因此需要设置多个神经网络来对某种数据分别执行不同的神经网络算法,而这势必会增加神经网络结构的复杂性,并降低神经网络运行的可靠性。



技术实现要素:

为了解决现有技术中的上述问题,即为了解决在不增加新网络结构的情况下,如何扩展人工神经网络可执行算法的技术问题。为此目的,本发明提供了一种神经网络计算处理模型。

本发明中神经网络计算处理模型,其特征在于,包括向量计算模块、激活函数模块和存储模块;

所述向量计算模块,配置为对预先获取的第一操作数据进行乘累加计算,并将乘累加计算结果发送至所述存储模块;

所述激活函数模块,配置为基于预设的激活函数计算策略,对预先获取的第二操作数据进行非线性函数计算,并将非线性函数计算结果发送至所述存储模块;

其中,在所述神经网络计算处理模型的某轮计算过程中,用于乘累加计算的第一操作数据为初始操作数据或前一轮计算所得的非线性函数计算结果,用于非线性函数计算的第二操作数据为本轮计算所得的乘累加计算结果。

进一步地,本发明提供的一个优选技术方案为:

所述向量计算模块包括数据解扩/对齐子模块、mac阵列子模块、池化子模块和数据选择子模块;

所述数据解扩/对齐子模块,配置为对预先获取的权重矩阵数据进行数据解扩和/或数据对齐处理,得到原始权重数据,并将所述原始权重数据发送至所述mac阵列子模块;

所述mac阵列子模块,配置为对所述第一操作数据进行乘累加计算,并将乘累加计算结果发送至所述池化子模块或数据选择子模块;

所述池化子模块,配置为对所述mac阵列子模块所发送的计算结果进行数据池化处理,并将数据池化处理结果发送至所述数据选择子模块;

所述数据选择子模块,配置为根据所述激活函数模块所指定的数据类型,将所述乘累加计算结果或数据池化结果中的相应数据发送至所述激活函数模块。

进一步地,本发明提供的一个优选技术方案为:

所述数据选择子模块,进一步配置为:

在通过所述神经网络计算处理模型进行卷积计算的情况下,所述数据选择子模块根据激活函数模块所指定的数据类型,将所述数据池化结果中的相应数据发送至所述激活函数模块;

在通过所述神经网络计算处理模型进行全连接神经网络计算的情况下,所述数据选择子模块根据激活函数模块所指定的数据类型,将所述乘累加计算结果发送至所述激活函数模块。

进一步地,本发明提供的一个优选技术方案为:

所述神经网络计算处理模型还包括标量计算模块;

所述标量计算模块,配置为基于预设的数据运算方法,对预先获取的第三操作数据进行相应计算,并将数据运算结果发送至所述存储模块;

在此情况下,在所述神经网络计算处理模型的某轮计算过程中,用于乘累加计算的第一操作数据为初始操作数据和/或前一轮计算所得的非线性函数计算结果和/或前一轮计算所得的数据运算结果,用于非线性函数计算的第二操作数据为本轮计算所得的乘累加计算结果和/或数据运算结果。

进一步地,本发明提供的一个优选技术方案为:

所述预设的数据运算方法包括向量内积运算方法、指数运算方法、自然对数运算方法和相似度运算方法。

进一步地,本发明提供的一个优选技术方案为:

所述标量计算模块,进一步配置为基于cordic算法,对预先获取的第三操作数据进行相应数据运算的计算。

进一步地,本发明提供的一个优选技术方案为:

所述激活函数计算策略包括sigmoid激活函数、tanh激活函数、relu激活函数、leaky-relu激活函数和maxout激活函数。

进一步地,本发明提供的一个优选技术方案为:

所述激活函数模块,进一步配置为基于cordic算法,对预先获取的第二操作数据进行相应激活函数计算策略所指定的非线性函数计算。

进一步地,本发明提供的一个优选技术方案为:

所述激活函数模块,进一步配置为基于预设的乘法/加法逻辑运算方法,对预先获取的第四操作数据进行计算,来模拟脉冲神经网络计算。

与最接近的现有技术相比,上述技术方案至少具有如下有益效果:

1、本发明中向量计算模块可以对操作数据进行多级乘累加计算,来模拟不同的神经网络结构。标量计算模块可以基于预设的数据运算方法,对操作数据进行相应计算(如向量内积计算、指数计算、自然对数计算和相似度计算)。激活函数模块可以根据预设的激活函数计算策略、向量计算模块的计算结果和标量计算模块的计算结果,模拟相应激活函数计算,来实现相应神经网络的计算(如卷积神经网络、全连接神经网络或脉冲神经网络)。

2、本发明中存储模块可以存储并管理向量计算模块和激活函数模块在各自计算过程中使用和生成的数据。

3、本发明中向量计算模块可以包括数据解扩/对齐子模块、mac阵列子模块、池化子模块和数据选择子模块。具体地,数据解扩/对齐子模块可以压缩数据转换为原始数据。mac阵列子模块可以对操作数据进行多级乘累加计算。当利用神经网络计算处理模型进行卷积神经网络计算时,mac阵列子模块将输出数据发送至池化子模块进行池化处理,再经数据选择子模块输出。当利用神经网络计算处理模型进行全连接神经网络计算时,mac阵列子模块将输出数据直接发送至数据选择子模块进行输出。

附图说明

图1是本发明实施例中一种神经网络计算处理模型的主要结构示意图;

图2是本发明实施例中激活函数模块的一部分结构示意图;

图3是本发明实施例中激活函数模块的另一部分结构示意图;

图4是本发明实施例中向量计算模块的主要结构示意图;

图5是本发明实施例中另一种神经网络计算处理模型的主要结构示意图。

具体实施方式

下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。

参阅附图1,图1示例性示出了本实施例中一种神经网络计算处理模型的主要结构示意图。如图1所示,本实施例中神经网络计算处理模型可以包括向量计算模块11、激活函数模块12和存储模块13。

具体地,在本实施例中向量计算模块11可以配置为对预先获取的第一操作数据进行乘累加计算,并将乘累加计算结果发送至存储模块13。激活函数模块12可以配置为基于预设的激活函数计算策略,对预先获取的第二操作数据进行非线性函数计算,并将非线性函数计算结果发送至存储模块13。其中,在神经网络计算处理模型的某轮计算过程中,用于乘累加计算的第一操作数据为初始操作数据或前一轮计算所得的非线性函数计算结果,用于非线性函数计算的第二操作数据为本轮计算所得的乘累加计算结果。

本实施例中激活函数计算策略可以包括sigmoid激活函数、tanh激活函数、relu激活函数、leaky-relu激活函数和maxout激活函数。相应地,本实施例中图1所示的激活函数模块12还可以配置为基于cordic算法,对预先获取的第二操作数据进行相应激活函数计算策略所指定的非线性函数计算。例如,激活函数模块12基于cordic算法,实现对预先获取的第二操作数据的sigmoid激活函数计算、和/或tanh激活函数、和/或relu激活函数、和/或leaky-relu激活函数、和/或maxout激活函数。

进一步地,本实施例中图1所示的激活函数模块12还可以配置为执行如下操作:基于预设的乘法/加法逻辑运算方法,对预先获取的第四操作数据进行计算,来模拟脉冲神经网络计算。也就是说,激活函数模块2可以通过预设的乘法/加法逻辑运算方法,实现脉冲神经元的计算功能,进而可以实现脉冲神经网络的计算功能。

参阅附图2,图2示例性示出了本实施例中图1所示激活函数模块12的一部分结构。如图2所示,激活函数模块12可以基于cordic算法,利用n级加法/移位实现指定的非线性函数计算。

参阅附图3,图3示例性示出了本实施例中图1所示激活函数模块12的另一部分结构。如图3所示,激活函数模块13可以基于预设的乘法/加法逻辑运算方法,模拟特定的神经元模型,从而实现脉冲神经网络计算。

在本实施例中,当通过神经网络计算处理模型实现传统神经网络计算(如卷积神经网络计算、全连接网络计算或循环神经网络计算)时,激活函数模块12可以基于预设的激活函数计算策略,对预先获取的第二操作数据进行非线性函数计算。

可选的,当通过神经网络计算处理模型实现脉冲神经网络计算时,激活函数模块2可以基于预设的乘法/加法逻辑运算方法,对预先获取的第四操作数据进行计算,来模拟脉冲神经网络计算。

例如,激活函数模块12可以通过执行并实现预设的乘法/加法逻辑运算方法,来模拟izhikevich神经元模型,进而根据izhikevich神经元模型对第四操作数据进行脉冲神经网络计算。

继续参阅附图4,图4示例性示出了本实施例中图1所示的向量计算模块11的主要结构。如图4所示,本实施例中向量计算模块11可以包括数据解扩/对齐子模块111、mac阵列子模块112、池化子模块113和数据选择子模块114。

具体地,在本实施例中数据解扩/对齐子模块111可以配置为对预先获取的权重矩阵数据进行数据解扩和/或数据对齐处理,得到原始权重数据,并将原始权重数据发送至mac阵列子模块112。mac阵列子模块112可以配置为对第一操作数据进行乘累加计算,并将乘累加计算结果发送至池化子模块113或数据选择子模块114。池化子模块113可以配置为对mac阵列子模块112所发送的计算结果进行数据池化处理,并将数据池化处理结果发送至数据选择子模块114。数据选择子模块可以配置为根据激活函数模块12所指定的数据类型,将乘累加计算结果或数据池化结果中的相应数据发送至激活函数模块2。

进一步地,本实施例中图4所示的数据选择子模块114可以配置为执行如下操作:

在通过神经网络计算处理模型进行卷积计算的情况下,数据选择子模块114根据激活函数模块12所指定的数据类型,将数据池化结果中的相应数据发送至激活函数模块12。

在通过神经网络计算处理模型进行全连接神经网络计算的情况下,数据选择子模块114根据激活函数模块12所指定的数据类型,将所述乘累加计算结果发送至激活函数模块12。

在本实施例中,当通过神经网络计算处理模型实现卷积神经网络计算时,将输入数据矩阵中每两行数据为一组,将每组数据串行输入至mac阵列子模块112,mac阵列子模块112可以根据输入数据与卷积核,进行乘累加计算。若卷积核维度为(m2,n2),则mac阵列子模块112将进行2×m2×n2次乘累加计算。

具体地,mac阵列子模块112在执行乘累加计算过程中,输入数据与卷积核的部分累加和如下式(1)所示:

mac阵列子模块112完成乘累加计算后所得的数据结果如下式(2)所示:

公式(1)和(2)中各参数含义为:

xi,j为输入数据矩阵中第i行第j列的数据,y~i,j为数据yi,j的部分累加和,yi,j为输出数据矩阵中第i行第j列的数据,为神经网络计算处理模型为实现卷积神经网络计算所使用的卷积核,为卷积核的翻转矩阵。

在本实施例中,当通过神经网络计算处理模型实现全连接神经网络计算时,数据解扩/对齐子模块111对输入数据矩阵进行数据解扩和数据对齐处理,将得到的原始输入数据串行输入至mac阵列子模块112进行乘累加计算。mac阵列子模块112在执行n次乘累加计算过程中,输入数据与卷积核的部分累加和如下式(3)所示:

mac阵列子模块112完成乘累加计算后所得的数据结果如下式(4)所示:

公式(3)和(4)中各参数含义为:

xi为第i个输入数据,y~i为数据yi的部分累加和,yi为第i个的输出数据,为神经网络计算处理模型为实现全连接神经网络计算所使用的卷积核。

继续参阅附图5,图5示例性示出了本实施例中另一种神经网络计算处理模型的主要结构示意图。如图5所示,本实施例中神经网络计算处理模型可以包括向量计算模块21、激活函数模块22、存储模块23和标量计算模块24。

具体地,本实施例中的向量计算模块21、激活函数模块22、存储模块23,分别与图1所示的向量计算模块11、激活函数模块12、存储模块13的功能相同,为了描述简洁,在此不再赘述。

在本实施例中,标量计算模块24可以配置为基于预设的数据运算方法,对预先获取的第三操作数据进行相应计算,并将数据运算结果发送至存储模块23。在此情况下,在神经网络计算处理模型的某轮计算过程中,用于乘累加计算的第一操作数据为初始操作数据和/或前一轮计算所得的非线性函数计算结果和/或前一轮计算所得的数据运算结果,用于非线性函数计算的第二操作数据为本轮计算所得的乘累加计算结果和/或数据运算结果。

本实施例中数据运算方法可以包括向量内积运算方法、指数运算方法、自然对数运算方法和相似度运算方法等算法。相应地,本实施例中图5所示的标量计算模块24还可以配置为基于cordic算法,对预先获取的第三操作数据进行相应数据运算的计算。

例如,标量计算模块24基于cordic算法,对预先获取的第三操作数据进行向量内积计算、和/或指数计算、和/或自然对数计算、和/或相似度计算。

需要说明的是,上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在本发明的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

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