• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      嵌入式系統(tǒng)中激活函數(shù)的快速計算

      2023-03-06 13:07:16曹鑫磊呂建良
      物聯(lián)網(wǎng)技術(shù) 2023年2期
      關(guān)鍵詞:浮點數(shù)見式冪函數(shù)

      梁 東,楊 濤,曹鑫磊,呂建良

      (中國航天空氣動力技術(shù)研究院,北京 100074)

      0 引 言

      在多層神經(jīng)網(wǎng)絡系統(tǒng)中,上層節(jié)點的輸出與下層節(jié)點的輸入之間具有一個函數(shù)關(guān)系,這個函數(shù)被稱為激活函數(shù)。為了提高神經(jīng)網(wǎng)絡的適應性,在神經(jīng)網(wǎng)絡計算中,必須引入非線性函數(shù)作為激活函數(shù)[1-3],常用的激活函數(shù)包括Sigmoid函數(shù)[4]、Tanh函數(shù)和ReLU函數(shù)等。

      隨著神經(jīng)網(wǎng)絡算法的應用普及,在嵌入式系統(tǒng)中進行神經(jīng)網(wǎng)絡計算的情況越來越多,雖然部分嵌入式處理器中增加了硬件乘法器,但多數(shù)嵌入式系統(tǒng)的性能較電腦仍有較大差距,且復雜非線性的激活函數(shù)計算耗時嚴重,因此提高神經(jīng)網(wǎng)絡中激活函數(shù)的運算速度對于確保神經(jīng)網(wǎng)絡的實時性具有重要意義。

      1 激活函數(shù)分析

      常用的激活函數(shù)Sigmoid見式(1):

      Sigmoid函數(shù)輸出波形如圖1所示,其輸出范圍為0~1,一般用于預測概率作為輸出模型,但其輸出為非0均值,會降低權(quán)重更新的效率,同時冪函數(shù)運算求解復雜,降低了系統(tǒng)實時性。

      圖1 Sigmoid函數(shù)波形

      Tanh函數(shù)如下所示:

      Tanh函數(shù)輸出波形如圖2所示,其解決了Sigmoid函數(shù)非零均值的問題,因此其應用最為廣泛,但其仍存在梯度消失和冪函數(shù)運算的問題。在嵌入系統(tǒng)中應用時可簡化為式(3),以減少冪函數(shù)的運算。

      圖2 Tanh函數(shù)波形

      ReLU是分段性函數(shù),如式(4)所示,計算其實時性可以滿足使用要求,但其非線性較弱,因此,一般用于多層神經(jīng)網(wǎng)絡系統(tǒng)中。

      綜上所述,Sigmoid函數(shù)和Tanh函數(shù)均存在冪運算復雜,降低了神經(jīng)網(wǎng)絡實時性的問題,進而限制了神經(jīng)網(wǎng)絡運算在嵌入式系統(tǒng)中的應用。本文以ex為例,實現(xiàn)冪函數(shù)的快速計算。

      2 快速計算原理

      2.1 存儲格式

      在嵌入式系統(tǒng)中,浮點數(shù)采用IEEE754格式存儲[5-7],以單精度浮點數(shù)格式為例,IEEE單精度浮點數(shù)格式共32位,包含3個構(gòu)成字段,1位符號s,8位偏置指數(shù)e,偏置值為127,23位尾數(shù)f,如圖3所示。浮點數(shù)真值F見式(5)。

      圖3 單精度浮點數(shù)存儲格式

      以103.5為例,首先將十進制轉(zhuǎn)化為二進制數(shù),見式(6):

      將式(6)進行規(guī)格化則有:

      根據(jù)單精度浮點數(shù)的存儲格式則有:

      因此,浮點數(shù)103.5在嵌入式系統(tǒng)中存儲的十六進制代碼為:42CF0000h。

      2.2 計算原理

      激活函數(shù)中常見的冪函數(shù)見式(11):

      首先,根據(jù)函數(shù)特點及浮點數(shù)的存儲格式可知,y=ex>0,因為浮點數(shù)y的符號位s=0。為與嵌入系統(tǒng)中單精度浮點數(shù)的存儲格式對應,對式(11)兩邊同時取2的對數(shù)則有:

      進而可得:

      式中:n=[xlog2e]是xlog2e的整數(shù)部分,須滿足n≤[xlog2e];E為xlog2e的小數(shù)部分,E=xlog2e-n,須滿足0≤E≤1。

      對比式(5)和式(13)可知,y的偏置指數(shù)為:

      尾數(shù)見式(15):

      由于0≤E≤1,因此可直接利用2x在0處的泰勒展開公式進行估算[8]。為進一步降低泰勒展開公式的復雜度,對式(15)進行變換,換成ex的格式,見式(16):

      由0≤E≤1可知,0≤Eln2≤0.693 2,因此可利用式(17)進行估算:

      式中,x=Eln2,計算出尾數(shù)f后,右移23位,即可寫入浮點數(shù)的尾數(shù)中。至此,y的符號位、偏置指數(shù)位、小數(shù)位均計算完成,y=ex計算完畢。

      3 算法實現(xiàn)

      利用C語言實現(xiàn)上述算法,流程如圖4所示。在計算中需考慮輸出結(jié)果是否在單精度浮點數(shù)的數(shù)據(jù)范圍內(nèi)。

      圖4 函數(shù)實現(xiàn)流程

      4 試驗驗證

      在STM32F427上進行試驗驗證,其主頻為180 MHz,具有FPU(浮點運算器)單元[9-10],首先進行精度驗證,為滿足輸出結(jié)果為單浮點精度數(shù),x取[-87:1:88],分別采用本文的方法(fast_exp)與math函數(shù)庫中的exp()函數(shù)進行計算,按式(18)進行誤差計算:

      相對誤差范圍量級在10-6,可以滿足一般神經(jīng)網(wǎng)絡的計算需求,若需進一步提高精度,將式(17)的高階泰勒展開項加入計算中即可。

      為檢驗運算速度,分別采用本文的方法與exp()函數(shù)計算10 000次,以隨機數(shù)x=12.543 36為例,試驗結(jié)果顯示,采用本文的方法耗時217.5 ms,采用exp()函數(shù)計算耗時4 158.8 ms,計算時間減少了94.77%,大大提高了冪函數(shù)運算的實時性。

      5 結(jié) 語

      本文總結(jié)了神經(jīng)網(wǎng)絡系統(tǒng)中常用的激活函數(shù),并對激活函數(shù)中冪函數(shù)的快速計算方法開展研究,利用嵌入式系統(tǒng)浮點數(shù)的存儲格式及泰勒級數(shù)展開,實現(xiàn)了冪函數(shù)的快速計算,在嵌入式系統(tǒng)中驗證后可知,計算精度達10-6以上,計算時間減少了94.77%,大大提高了冪函數(shù)的運算速度,對于提高神經(jīng)網(wǎng)絡算法在嵌入式系統(tǒng)中應用的實時性具有重要意義。

      猜你喜歡
      浮點數(shù)見式冪函數(shù)
      高速公路下穿既有鐵路橋橋墩基底承載力驗算*
      公路與汽運(2024年1期)2024-03-07 03:02:06
      低溫下船用鋼材彈塑性曲線研究
      河南科技(2023年1期)2023-02-11 12:17:04
      Effects of Landau damping and collision on stimulated Raman scattering with various phase-space distributions
      冪函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)(2)
      冪函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)(1)
      四種Python均勻浮點數(shù)生成方法
      電腦報(2021年11期)2021-07-01 08:26:31
      冪函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)(1)
      橋(門)式起重機起升機構(gòu)高速浮動軸設計
      在C語言中雙精度浮點數(shù)線性化相等比較的研究
      看圖說話,揭開冪函數(shù)的廬山真面目
      六枝特区| 嘉祥县| 盖州市| 康保县| 西丰县| 弥渡县| 遂川县| 三江| 舞钢市| 承德县| 衡东县| 罗源县| 迭部县| 海伦市| 安西县| 乌兰县| 永城市| 海口市| 方山县| 宜良县| 老河口市| 梁山县| 托克托县| 建阳市| 石渠县| 方城县| 怀来县| 枣庄市| 乐清市| 深水埗区| 马鞍山市| 工布江达县| 宣恩县| 清涧县| 盱眙县| 沧源| 东港市| 永兴县| 青冈县| 明水县| 宽城|