一種基于浮點數(shù)運算內(nèi)聯(lián)函數(shù)庫的神經(jīng)網(wǎng)絡(luò)優(yōu)化方法,其中神經(jīng)單元的模型為:Y=1/(1+exp(-∑wi×xi)),i取1到n,n為神經(jīng)單元個數(shù);上述浮點數(shù)運算內(nèi)聯(lián)函數(shù)庫構(gòu)建于雙核芯片之中,即函數(shù)庫IQmathLibrary中。本發(fā)明專利技術(shù)的基于浮點數(shù)運算內(nèi)聯(lián)函數(shù)庫的神經(jīng)網(wǎng)絡(luò)優(yōu)化方法中,除了_IQ(x[i])這一步驟是在循環(huán)中執(zhí)行以外,剩下的步驟都在循環(huán)體外執(zhí)行,所有的步驟執(zhí)行在整體上比浮點運算的效率大大提升。本發(fā)明專利技術(shù)將BP神經(jīng)網(wǎng)絡(luò)在TMS3206467T上的移植優(yōu)化,結(jié)果的精度由開始的小數(shù)定標(biāo)決定在保證結(jié)果精度不影響識別率的同時大大提高了BP網(wǎng)絡(luò)識別效率。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及模式識別的
,具體說是一種的。
技術(shù)介紹
模式識別技術(shù)在當(dāng)今社會智能化產(chǎn)品中的應(yīng)用越來越多,而作為分類識別的主流分類器-誤差回傳神經(jīng)網(wǎng)絡(luò)(BP網(wǎng)絡(luò))在字符,指紋,人臉識別的應(yīng)用也是很普遍。傳統(tǒng)的識別算法都是在PC機(jī)上運行,不利于產(chǎn)品的便攜化,集成化和前端化。神經(jīng)網(wǎng)絡(luò)是由仿生神經(jīng)元的結(jié)構(gòu)和功能的數(shù)學(xué)模型(處理單元)組成的陣列。這些處理單元線性排列成組,稱為層。每一個處理單元有許多輸入量,而對每一個輸入量都相應(yīng)有一個相關(guān)聯(lián)的權(quán)重。處理單元將輸入量經(jīng)過加權(quán)求和,并通過傳遞函數(shù)的作用得到輸出量,再傳給下一層的神經(jīng)元。圖1是單個神經(jīng)元的數(shù)學(xué)模型圖。如圖1所示,神經(jīng)元的數(shù)學(xué)模型為Y = f ( Σ wi*x1- Θ ),其中i取I到n(n為輸入信號數(shù)目),Θ為神經(jīng)元單元的偏置(閾值),Wi為連接權(quán)系數(shù)(對于激發(fā)狀態(tài)取正值, 對于抑制狀態(tài)取負(fù)值),Y為神經(jīng)元輸出,f()為輸出變換函數(shù),通常采用采用O和I 二值函數(shù)或S形函數(shù)?;綛P算法包括兩個方面信號的前向傳播和誤差的反向傳播。即計算實際輸出時按從輸入到輸出的方向進(jìn)行,而權(quán)值和閾值的修正從輸出到輸入的方向進(jìn)行。圖2是由三層神經(jīng)元構(gòu)成的BP網(wǎng)絡(luò)結(jié)構(gòu)示意圖。圖中xj表示輸入層第j個節(jié)點的輸入,j=l,…,M ;wij表示隱含層第i個節(jié)點到輸入層第j個節(jié)點之間的權(quán)值;Θi表示隱含層第i個節(jié)點的閾值;Φ (x)表示隱含層的激勵函數(shù);wki表示輸出層第k個節(jié)點到隱含層第i個節(jié)點之間的權(quán)值,i=l···. q ; ak表示輸出層第k個節(jié)點的閾值,k =Ψ(χ)表示輸出層的激勵函數(shù);0k表不輸出層第k個節(jié)點的輸出。隨著嵌入式智能分析產(chǎn)品需求的不斷擴(kuò)大,對算法在不同平臺間的移植和優(yōu)化提出了更多的要求和需求。要求算法在嵌入式設(shè)備上要有相當(dāng)于或優(yōu)于PC機(jī)的性能和效率。 由于BP神經(jīng)網(wǎng)絡(luò)有浮點數(shù)計算量大,非線性計算量大的特點使其在嵌入式處理器上的執(zhí)行效率大大受阻。美國TI公司出品的達(dá)芬奇平臺TMS3206467T雙核芯片,具有主頻990M的DSP核, 高速cache,多等級的優(yōu)化配置,和基于浮點數(shù)運算的高效內(nèi)聯(lián)函數(shù)庫。
技術(shù)實現(xiàn)思路
本專利技術(shù)要解決的技術(shù)問題是提供一種基于LBP空間直方圖特征和級聯(lián)多分類器, 適合不同場景、不同光照,并且達(dá)到實時性的。本專利技術(shù)為解決公知技術(shù)中存在的技術(shù)問題所采取的技術(shù)方案是本專利技術(shù)的,其中神經(jīng)單元的模型為'Y =1/(1 + exp (-Σ WiXxi)), i取I到η, η為神經(jīng)單元個數(shù);上述浮點數(shù)運算內(nèi)聯(lián)函數(shù)庫構(gòu)建于雙核芯片之中,即函數(shù)庫IQmath Library,該函數(shù)庫包括格式轉(zhuǎn)化函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)與整數(shù)之間的相互轉(zhuǎn)化;運算函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的乘除法;三角函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的正弦,余弦,正切運算;數(shù)學(xué)函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的開根,指數(shù),對數(shù)和多次方運算;一般運算函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的絕對值和限幅運算; 上述神經(jīng)網(wǎng)絡(luò)優(yōu)化的步驟為I、根據(jù)實際w和X的取值范圍和精度要求,對浮點數(shù)w和X進(jìn)行定標(biāo),并定義_INLINE_ IQMATH 模式;II、調(diào)用函數(shù)庫IQmathLibrary中的格式轉(zhuǎn)化函數(shù)將定標(biāo)后的浮點數(shù)轉(zhuǎn)化為定點數(shù), 調(diào)用格式轉(zhuǎn)化函數(shù)中的int y =_IQ(float x);其中權(quán)值w為常量,在運算前轉(zhuǎn)為整形數(shù), int intw = _IQ(w);值 x 在運算時進(jìn)行轉(zhuǎn)化,int intx =_IQ(x);III、先進(jìn)行乘法點積運算,調(diào)用運算函數(shù)_1。y= _IQmpy(_iq A, _iq B) ;_iq sum = -Σ _IQmpy (intw, _IQ(x)), i = 0…n,進(jìn)行整形乘法運算,Σ循環(huán)執(zhí)行;然后進(jìn)行指數(shù)運算調(diào)用_iq y = _IQexp (_iq A),_iq y = _IQexp (sum),進(jìn)行查指數(shù)表運算,所述的指數(shù)表在運行實時庫中,通過cmd文件指定存儲段;再進(jìn)行除法運算,調(diào)用運算函數(shù)_1(1 y =_IQdiv(_iq A, _iq B), res = _IQdiv(l, I + y),進(jìn)行查除法表運算;IV、最后用格式轉(zhuǎn)化函數(shù)將結(jié)果再次轉(zhuǎn)換回浮點數(shù),調(diào)用用函數(shù)floaty = _ IQtoF(int x), float fres = _IQtoF(res)。本專利技術(shù)的還可以采用以下技術(shù)措施 在上述步驟I中采用Q式浮點數(shù)定標(biāo)取值范圍和精度為浮點數(shù)進(jìn)行定標(biāo)。將浮點數(shù)w和X定標(biāo)為_iq8。運行實時庫為IQmath_R0M_c643x. lib, IQmath_RAM_c64x+. lib, IQmath_c64x+. lib。本專利技術(shù)具有的優(yōu)點和積極效果是本專利技術(shù)的中,以上步驟除了 _ IQ(x)這一步驟是在循環(huán)中執(zhí)行以外,剩下的步驟都在循環(huán)體外執(zhí)行,所有的步驟執(zhí)行在整體上比浮點運算的效率大大提升。本專利技術(shù)將BP神經(jīng)網(wǎng)絡(luò)在TMS3206467T上的移植優(yōu)化,結(jié)果的精度由開始的小數(shù)定標(biāo)決定在保證結(jié)果精度不影響識別率的同時大大提高了 BP 網(wǎng)絡(luò)識別效率。附圖說明圖1是單個神經(jīng)元的數(shù)學(xué)模型圖;圖2是由三層神經(jīng)元構(gòu)成的BP網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖3是Q式浮點數(shù)定標(biāo)取值范圍與精度表。具體實施方式以下參照附圖及實施例對本專利技術(shù)進(jìn)行詳細(xì)的說明。本專利技術(shù)的,其中神經(jīng)單元的模型為Y = 1/(1 + exp(- Σ WiXxi)), i取I到η, η為神經(jīng)單元個數(shù);上述浮點數(shù)運算內(nèi)聯(lián)函數(shù)庫構(gòu)建于雙核芯片之中,即函數(shù)庫IQmath Library,該函數(shù)庫包括格式轉(zhuǎn)化函數(shù), 實現(xiàn)定標(biāo)后的浮點數(shù)與整數(shù)之間的相互轉(zhuǎn)化;運算函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的乘除法; 三角函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的正弦,余弦,正切運算;數(shù)學(xué)函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的開根,指數(shù),對數(shù)和多次方運算;一般運 算函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的絕對值和限幅運算;上述神經(jīng)網(wǎng)絡(luò)優(yōu)化的步驟為I、根據(jù)實際w和X的取值范圍和精度要求,對浮點數(shù)w和X進(jìn)行定標(biāo),并定義_INLINE_ IQMATH 模式;II、調(diào)用函數(shù)庫IQmathLibrary中的格式轉(zhuǎn)化函數(shù)將定標(biāo)后的浮點數(shù)轉(zhuǎn)化為定點數(shù), 調(diào)用格式轉(zhuǎn)化函數(shù)中的int y =_IQ(float x);其中權(quán)值w為常量,在運算前轉(zhuǎn)為整形數(shù), int intw = _IQ(w);值 x 在運算時進(jìn)行轉(zhuǎn)化,int intx =_IQ(x);III、先進(jìn)行乘法點積運算,調(diào)用運算函數(shù)_1。y= _IQmpy(_iq A, _iq B) ;_iq sum = -Σ _IQmpy (intw, _IQ(x)), i = 0…n,進(jìn)行整形乘法運算,Σ循環(huán)執(zhí)行;然后進(jìn)行指數(shù)運算調(diào)用_iq y = _IQexp (_iq A),_iq y = _IQexp (sum),進(jìn)行查指數(shù)表運算,所述的指數(shù)表在運行實時庫中,通過cmd文件指定存儲段;再進(jìn)行除法運算,調(diào)用運算函數(shù)_iq y =_IQdiv(_iq A, _iq B), res = _IQdiv(l, I + y),進(jìn)行查除法表運算;IV、最后用格式轉(zhuǎn)化函數(shù)將結(jié)果再次轉(zhuǎn)換回浮點數(shù),調(diào)用用函數(shù)floaty = _ IQtoF(int x), float fres = _IQtoF(res)。定點DSP把所有數(shù)據(jù)都當(dāng)作整數(shù)來處理,對于小數(shù)要先定標(biāo)后再轉(zhuǎn)化為整形數(shù)進(jìn)行運算運算結(jié)本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點】
一種基于浮點數(shù)運算內(nèi)聯(lián)函數(shù)庫的神經(jīng)網(wǎng)絡(luò)優(yōu)化方法,其中神經(jīng)單元的模型為:Y?=?1/(1?+?exp(?∑wi×xi)),?i取1到n,n為神經(jīng)單元個數(shù);上述浮點數(shù)運算內(nèi)聯(lián)函數(shù)庫構(gòu)建于雙核芯片之中,?即函數(shù)庫IQmath?Library,該函數(shù)庫包括:格式轉(zhuǎn)化函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)與整數(shù)之間的相互轉(zhuǎn)化;運算函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的乘除法;三角函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的正弦,余弦,正切運算;數(shù)學(xué)函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的開根,指數(shù),對數(shù)和多次方運算;一般運算函數(shù),實現(xiàn)定標(biāo)后的浮點數(shù)的絕對值和限幅運算;上述神經(jīng)網(wǎng)絡(luò)優(yōu)化的步驟為:I、根據(jù)實際w和x的取值范圍和精度要求,對浮點數(shù)w和x進(jìn)行定標(biāo),并定義_INLINE_IQMATH模式;II、調(diào)用函數(shù)庫IQmath?Library中的格式轉(zhuǎn)化函數(shù)將定標(biāo)后的浮點數(shù)轉(zhuǎn)化為定點數(shù),調(diào)用格式轉(zhuǎn)化函數(shù)中的int?y?=_IQ(float?x);其中權(quán)值w為常量,在運算前轉(zhuǎn)為整形數(shù),int?intw[i]?=?_IQ(w[i]);值x在運算時進(jìn)行轉(zhuǎn)化,int?intx[i]?=_IQ(x[i]);III、先進(jìn)行乘法點積運算,調(diào)用運算函數(shù)_iq?y?=?_IQmpy(_iq?A,_iq?B);_iq?sum?=??∑_IQmpy(intw[i],_IQ(x[i])),?i?=?0?…?n,進(jìn)行整形乘法運算,∑循環(huán)執(zhí)行;然后進(jìn)行指數(shù)運算調(diào)用_iq?y?=?_IQexp(_iq?A),_iq?y?=?_IQexp(sum),進(jìn)行查指數(shù)表運算,所述的指數(shù)表在運行實時庫中,通過cmd文件指定存儲段;再進(jìn)行除法運算,調(diào)用運算函數(shù)_iq?y?=?_IQdiv(_iq?A,_iq?B),res?=?_IQdiv(1,1?+?y)?,進(jìn)行查除法表運算;IV.最后用格式轉(zhuǎn)化函數(shù)將結(jié)果再次轉(zhuǎn)換回浮點數(shù),調(diào)用用函數(shù)float?y?=?_IQtoF(int?x),float?fres?=?_IQtoF(res)。...
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:謝曉霞,靳璐,
申請(專利權(quán))人:天津市天祥世聯(lián)網(wǎng)絡(luò)科技有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。