一种基于浮点数运算内联函数库的神经网络优化方法,其中神经单元的模型为:Y=1/(1+exp(-∑wi×xi)),i取1到n,n为神经单元个数;上述浮点数运算内联函数库构建于双核芯片之中,即函数库IQmathLibrary中。本发明专利技术的基于浮点数运算内联函数库的神经网络优化方法中,除了_IQ(x[i])这一步骤是在循环中执行以外,剩下的步骤都在循环体外执行,所有的步骤执行在整体上比浮点运算的效率大大提升。本发明专利技术将BP神经网络在TMS3206467T上的移植优化,结果的精度由开始的小数定标决定在保证结果精度不影响识别率的同时大大提高了BP网络识别效率。
【技术实现步骤摘要】
本专利技术涉及模式识别的
,具体说是一种的。
技术介绍
模式识别技术在当今社会智能化产品中的应用越来越多,而作为分类识别的主流分类器-误差回传神经网络(BP网络)在字符,指纹,人脸识别的应用也是很普遍。传统的识别算法都是在PC机上运行,不利于产品的便携化,集成化和前端化。神经网络是由仿生神经元的结构和功能的数学模型(处理单元)组成的阵列。这些处理单元线性排列成组,称为层。每一个处理单元有许多输入量,而对每一个输入量都相应有一个相关联的权重。处理单元将输入量经过加权求和,并通过传递函数的作用得到输出量,再传给下一层的神经元。图1是单个神经元的数学模型图。如图1所示,神经元的数学模型为Y = f ( Σ wi*x1- Θ ),其中i取I到n(n为输入信号数目),Θ为神经元单元的偏置(阈值),Wi为连接权系数(对于激发状态取正值, 对于抑制状态取负值),Y为神经元输出,f()为输出变换函数,通常采用采用O和I 二值函数或S形函数。基本BP算法包括两个方面信号的前向传播和误差的反向传播。即计算实际输出时按从输入到输出的方向进行,而权值和阈值的修正从输出到输入的方向进行。图2是由三层神经元构成的BP网络结构示意图。图中xj表示输入层第j个节点的输入,j=l,…,M ;wij表示隐含层第i个节点到输入层第j个节点之间的权值;Θi表示隐含层第i个节点的阈值;Φ (x)表示隐含层的激励函数;wki表示输出层第k个节点到隐含层第i个节点之间的权值,i=l···. q ; ak表示输出层第k个节点的阈值,k =Ψ(χ)表示输出层的激励函数;0k表不输出层第k个节点的输出。随着嵌入式智能分析产品需求的不断扩大,对算法在不同平台间的移植和优化提出了更多的要求和需求。要求算法在嵌入式设备上要有相当于或优于PC机的性能和效率。 由于BP神经网络有浮点数计算量大,非线性计算量大的特点使其在嵌入式处理器上的执行效率大大受阻。美国TI公司出品的达芬奇平台TMS3206467T双核芯片,具有主频990M的DSP核, 高速cache,多等级的优化配置,和基于浮点数运算的高效内联函数库。
技术实现思路
本专利技术要解决的技术问题是提供一种基于LBP空间直方图特征和级联多分类器, 适合不同场景、不同光照,并且达到实时性的。本专利技术为解决公知技术中存在的技术问题所采取的技术方案是本专利技术的,其中神经单元的模型为'Y =1/(1 + exp (-Σ WiXxi)), i取I到η, η为神经单元个数;上述浮点数运算内联函数库构建于双核芯片之中,即函数库IQmath Library,该函数库包括格式转化函数,实现定标后的浮点数与整数之间的相互转化;运算函数,实现定标后的浮点数的乘除法;三角函数,实现定标后的浮点数的正弦,余弦,正切运算;数学函数,实现定标后的浮点数的开根,指数,对数和多次方运算;一般运算函数,实现定标后的浮点数的绝对值和限幅运算; 上述神经网络优化的步骤为I、根据实际w和X的取值范围和精度要求,对浮点数w和X进行定标,并定义_INLINE_ IQMATH 模式;II、调用函数库IQmathLibrary中的格式转化函数将定标后的浮点数转化为定点数, 调用格式转化函数中的int y =_IQ(float x);其中权值w为常量,在运算前转为整形数, int intw = _IQ(w);值 x 在运算时进行转化,int intx =_IQ(x);III、先进行乘法点积运算,调用运算函数_1。y= _IQmpy(_iq A, _iq B) ;_iq sum = -Σ _IQmpy (intw, _IQ(x)), i = 0…n,进行整形乘法运算,Σ循环执行;然后进行指数运算调用_iq y = _IQexp (_iq A),_iq y = _IQexp (sum),进行查指数表运算,所述的指数表在运行实时库中,通过cmd文件指定存储段;再进行除法运算,调用运算函数_1(1 y =_IQdiv(_iq A, _iq B), res = _IQdiv(l, I + y),进行查除法表运算;IV、最后用格式转化函数将结果再次转换回浮点数,调用用函数floaty = _ IQtoF(int x), float fres = _IQtoF(res)。本专利技术的还可以采用以下技术措施 在上述步骤I中采用Q式浮点数定标取值范围和精度为浮点数进行定标。将浮点数w和X定标为_iq8。运行实时库为IQmath_R0M_c643x. lib, IQmath_RAM_c64x+. lib, IQmath_c64x+. lib。本专利技术具有的优点和积极效果是本专利技术的中,以上步骤除了 _ IQ(x)这一步骤是在循环中执行以外,剩下的步骤都在循环体外执行,所有的步骤执行在整体上比浮点运算的效率大大提升。本专利技术将BP神经网络在TMS3206467T上的移植优化,结果的精度由开始的小数定标决定在保证结果精度不影响识别率的同时大大提高了 BP 网络识别效率。附图说明图1是单个神经元的数学模型图;图2是由三层神经元构成的BP网络结构示意图;图3是Q式浮点数定标取值范围与精度表。具体实施方式以下参照附图及实施例对本专利技术进行详细的说明。本专利技术的,其中神经单元的模型为Y = 1/(1 + exp(- Σ WiXxi)), i取I到η, η为神经单元个数;上述浮点数运算内联函数库构建于双核芯片之中,即函数库IQmath Library,该函数库包括格式转化函数, 实现定标后的浮点数与整数之间的相互转化;运算函数,实现定标后的浮点数的乘除法; 三角函数,实现定标后的浮点数的正弦,余弦,正切运算;数学函数,实现定标后的浮点数的开根,指数,对数和多次方运算;一般运 算函数,实现定标后的浮点数的绝对值和限幅运算;上述神经网络优化的步骤为I、根据实际w和X的取值范围和精度要求,对浮点数w和X进行定标,并定义_INLINE_ IQMATH 模式;II、调用函数库IQmathLibrary中的格式转化函数将定标后的浮点数转化为定点数, 调用格式转化函数中的int y =_IQ(float x);其中权值w为常量,在运算前转为整形数, int intw = _IQ(w);值 x 在运算时进行转化,int intx =_IQ(x);III、先进行乘法点积运算,调用运算函数_1。y= _IQmpy(_iq A, _iq B) ;_iq sum = -Σ _IQmpy (intw, _IQ(x)), i = 0…n,进行整形乘法运算,Σ循环执行;然后进行指数运算调用_iq y = _IQexp (_iq A),_iq y = _IQexp (sum),进行查指数表运算,所述的指数表在运行实时库中,通过cmd文件指定存储段;再进行除法运算,调用运算函数_iq y =_IQdiv(_iq A, _iq B), res = _IQdiv(l, I + y),进行查除法表运算;IV、最后用格式转化函数将结果再次转换回浮点数,调用用函数floaty = _ IQtoF(int x), float fres = _IQtoF(res)。定点DSP把所有数据都当作整数来处理,对于小数要先定标后再转化为整形数进行运算运算结本文档来自技高网...
【技术保护点】
一种基于浮点数运算内联函数库的神经网络优化方法,其中神经单元的模型为:Y?=?1/(1?+?exp(?∑wi×xi)),?i取1到n,n为神经单元个数;上述浮点数运算内联函数库构建于双核芯片之中,?即函数库IQmath?Library,该函数库包括:格式转化函数,实现定标后的浮点数与整数之间的相互转化;运算函数,实现定标后的浮点数的乘除法;三角函数,实现定标后的浮点数的正弦,余弦,正切运算;数学函数,实现定标后的浮点数的开根,指数,对数和多次方运算;一般运算函数,实现定标后的浮点数的绝对值和限幅运算;上述神经网络优化的步骤为:I、根据实际w和x的取值范围和精度要求,对浮点数w和x进行定标,并定义_INLINE_IQMATH模式;II、调用函数库IQmath?Library中的格式转化函数将定标后的浮点数转化为定点数,调用格式转化函数中的int?y?=_IQ(float?x);其中权值w为常量,在运算前转为整形数,int?intw[i]?=?_IQ(w[i]);值x在运算时进行转化,int?intx[i]?=_IQ(x[i]);III、先进行乘法点积运算,调用运算函数_iq?y?=?_IQmpy(_iq?A,_iq?B);_iq?sum?=??∑_IQmpy(intw[i],_IQ(x[i])),?i?=?0?…?n,进行整形乘法运算,∑循环执行;然后进行指数运算调用_iq?y?=?_IQexp(_iq?A),_iq?y?=?_IQexp(sum),进行查指数表运算,所述的指数表在运行实时库中,通过cmd文件指定存储段;再进行除法运算,调用运算函数_iq?y?=?_IQdiv(_iq?A,_iq?B),res?=?_IQdiv(1,1?+?y)?,进行查除法表运算;IV.最后用格式转化函数将结果再次转换回浮点数,调用用函数float?y?=?_IQtoF(int?x),float?fres?=?_IQtoF(res)。...
【技术特征摘要】
【专利技术属性】
技术研发人员:谢晓霞,靳璐,
申请(专利权)人:天津市天祥世联网络科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。