999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于長短時記憶神經網絡硬件加速的燃爆狀態監測應用

2021-10-27 09:01:32吳宇塵陳向東陳欣鵬陳一健
物聯網技術 2021年10期
關鍵詞:分類

吳宇塵,陳向東,丁 星,陳欣鵬,李 皋,陳一健

(1.西南交通大學 信息科學與技術學院,四川 成都 610031;2.西南石油大學 油氣藏地質及開發工程國家重點實驗室,四川 成都 610500;3.西南石油大學 石油與天然氣工程學院,四川 成都 610500)

0 引 言

長短時記憶神經網絡由于其輸入輸出具有時序特性,被廣泛應用于處理序列學習的應用中[1]。LSTM作為循環神經網絡的變種,其模型也能同RNN一樣把上一時間序列的信息綜合輸入到當前時間序列的神經元中,故在處理語音語義分析、圖像字幕生成等時序特征明顯的任務時能夠達到良好的性能[2]。可燃氣體燃爆狀態分類應用的輸入輸出數據具有明顯的時序特征,因此該應用能夠出色地發揮出LSTM神經網絡的時間關聯性,使得燃爆狀態的分類具有較好的抗干擾能力和較高的準確率。

現階段LSTM神經網絡的硬件實現方法有GPU(Graphics Processing Unit, GPU)、ASIC(Application Specific Integrated Circuit, ASIC)、FPGA(Field-Programable Gate Array, FPGA)三種。GPU具有并行計算效率高、易編程的特點,但是GPU的功耗高,不適用于邊緣計算和推理加速。ASIC在各方面性能表現優秀,但是流片成本高、流片后修改難度大。FPGA的開發時間、靈活性、功耗適中,較適用于推理加速[3]。

研究表明,基于FPGA實現的LSTM神經網絡與基于GPU實現的LSTM神經網絡相比,存在靈活性、通用性較差的問題[4-5]。當改變應用場景或修改網絡配置時只能重新修改電路結構。本文使用的片上系統(System on Chip, SoC)對LSTM神經網絡進行異構運算,為提高通用性和靈活性帶來了新方法。

本文采用從機采集,MATLAB離線訓練,SoC軟件端預處理,SoC硬件端在線預測的方式,實現了一個可靈活配置參數的LSTM神經網絡,可被應用于氣體燃爆狀態監測中。此系統能使氣體燃爆狀態監測應用具有更加良好的實時性,僅通過9.6 μs的運算便能得到燃爆分類結果。

1 系統結構

可燃氣體的燃爆狀態監測系統結構如圖1所示,包含從機數據采集端和數據處理端兩大部分。

圖1 監測系統結構

從機數據采集端通過恒壓脈沖電橋、可調電壓電橋等方法實現甲烷傳感器在高濃度下的防損壞功能[6]。同時讓溫度、濕度等參數加入到環境中的甲烷濃度計算過程。最后把甲烷、二氧化碳、氧氣三種氣體的濃度值經過歸一化處理之后,把氣體數據傳輸給SoC數據處理端。

SoC數據處理端是基于Artix-XC7A100T系列FPGA搭建,并在FPGA中構建了以Cortex-M3系列32位工控處理器IP為核心的SoC。該SoC中的各處理器、外設、LSTM協處理器通過AXI總線協議(Advanced Extensible Interface,AXI)連接。輸入數據經過通信接口后會進行定點化和FIR濾波(Finite Impulse Response, FIR)處理。之后由數據預處理模塊將數據通過AXI協議傳輸給處理器軟件部分,并由軟件部分緩存。在軟件部分給LSTM神經網絡硬件加速器配置好權值和偏置后,即可開始一次硬件加速計算。計算得到的LSTM網絡分類結果可通過OLED顯示并借助串口輸出。

2 LSTM神經網絡硬件加速

2.1 LSTM神經網絡結構

LSTM神經網絡的核心思想在于使用記憶單元狀態、遺忘門等不同于常規RNN的結構,抑制反向傳輸時梯度消失的問題。此結構可以改善反向傳輸的梯度被近時間序列信息主導,使得遠時間序列的信息難以傳達的問題[7-8]。LSTM神經網絡單元結構如圖2所示。

圖2 LSTM神經網絡單元結構

LSTM為了避免信息損失和輸入無用信息,通過使用顯式的加法或減法來更改LSTM的狀態,可以達到控制不同信息流通量的目的。輸入門、輸出門、遺忘門、候選門能夠對可燃氣體的實時濃度值xt、上個時間序列的輸出ht-1以及當前時間序列的輸出ht進行流通量控制,使得LSTM單元能夠協調且有效地獲取信息。

輸入門it的表達式如式(3)所示,代表此時的傳感器信息和前時的輸出是否參與或哪些參與到記憶單元ct的計算中:

遺忘門ft的表達式如式(4)所示,代表前時的記憶單元輸出信息ct-1是否參與或哪些參與到此時記憶單元輸出ct的計算中:

輸出門ot的表達式如式(5)所示,代表此時的傳感器信息和前時的輸出是否參與或哪些參與到此時的輸出ht的計算中:

隱層輸出ht由單元狀態和輸出門共同決定,其表達式如式(6)所示:

2.2 數據預處理

在氣體的燃爆過程中,氧氣、二氧化碳、甲烷等氣體的濃度范圍差異較大,且單位不統一。為了降低輸入參數差異巨大對LSTM網絡帶來的誤差,在從機采集端對數據采用歸一化運算。

在FPGA功能模塊的設計中,為確保硬件電路的可重用性良好、面積速度功耗表現良好,所有數據的計算和傳輸均使用定點數作為載體。故在SoC中的軟件端對從機輸入數據實行浮點數定點數轉換函數計算。文獻[10]通過分析驗證表明,16位定點數能夠實現精度較好的神經網絡數據格式。該定點數格式由1 bit符號位、3 bit整數位、12 bit小數位構成[11]。

在與文獻[12]相同的實驗環境下,共采集10 013組樣本,每組樣本中有6種數據,分別為甲烷濃度、二氧化碳濃度、氧氣濃度、甲烷濃度變化量、二氧化碳濃度變化量、氧氣濃度變化量。每8組樣本設置為一個序列,并歸類隨機打亂后70%的序列為訓練集,未打亂的30%序列為測試集。對實驗環境的氣體分類為正常狀態、泄漏中狀態、泄漏后狀態、燃燒中狀態、燃燒后狀態[11]。

2.3 LSTM神經網絡訓練與仿真

在MATLAB中編寫腳本訓練LSTM神經網絡時,首先初始化隨機種子數、學習率以及訓練步數,然后設置時間序列長度為8,最后選用26個隱層節點、6個輸入層節點和5個輸出層節點,使目標損失函數最小化。

訓練完畢之后,使用測試集的分類結果繪制混淆矩陣,作為網絡性能的參考。測試集分類結果的混淆矩陣如圖3所示。

圖3 混淆矩陣

橫縱坐標分別表示燃爆狀態分類的實際結果和仿真預測結果,從Ⅰ到V分別為燃燒后、燃燒中、泄漏后、泄漏中和正常狀態。綠色矩形框內上方的數字為正確預測數,下方為樣本比例;紅色框內為錯誤預測數和樣本比例。行末框內的綠色數字為精準率,列末框內的綠色數字為召回率,行末、列末框內的紅色數字為錯誤率。

仿真結果表明:在模擬環境中進行5分類燃爆狀態仿真時,神經網絡的分類正確率為96.9%。

3 LSTM神經網絡的硬件實現

3.1 LSTM神經網絡控制時序

LSTM網絡隱層單元中各門的輸出可進行并行計算加速,而Element-Wise的輸出只能由串行運算得到,所以通過FPGA對該模塊使用流水線結構進行加速可以充分發揮FPGA并行硬件加速的優勢[13]。

但在LSTM神經網絡算法流程中,需要同時接收第t時刻的輸入xt和第t-1時刻的輸出ht-1,這樣并不利于流水線的運行[14],所以在本設計中使用了分片計算的方法,使得流水線執行效率上升,不再有等待上一時刻計算結果的空閑狀態。

LSTM模塊一次性讀入2個數據串,分時載入數據串A和B進行運算,當A在t=1時刻進行運算時,B在t=0時刻的結果剛好可以得出,并作為B在t=1時刻的輸入值。

圖4顯示了計算獲得ht和ct的總體時序。首先SoC軟件端通過AXI總線發送輸入數據串A和B的值xtA和xtB到LSTM加速器模塊并存儲到其內部寄存器。隨后SoC軟件端再通過AXI總線發送開始信號,此時LSTM加速器開始2次完整的計算,即數據串A和B的數據輪換分時進入計算單元進行計算。

圖4 LSTM神經網絡控制時序

首先進行數據串A在第t個時刻的運算。在數據輸入前,需要將數據串A在t-1時刻的輸出ht-1A讀取1次。在這之后,隱層的4個MAC模塊分別同時開始運行遺忘門、輸入門、輸出門、記憶單元操作以及激活函數,此操作共延遲9+H個時鐘周期。同時將數據串A在上一時刻記憶單元的輸出ct-1A取出,用于Element-Wise運算。在取出ct-1A的下一個時鐘周期,開始計算在H個時鐘周期延遲之后計算得到全部H個隱層節點的ctA,再經過3個時鐘周期的激活函數運算得到tanh(ct)。此時MAC運算得到的otA,經過5個時鐘周期的Buffer延遲之后輸出,進行ht的計算,htA=otA*tanh(ctA)。最后將數據串A在t時刻的值htA和ctA保存。此時,便完成了一次數據串A于第t時刻的全部隱層單元htA的輸出計算。

在第10+H個時鐘周期時,開始一次數據串B在第t時刻的計算,即重復一次數據串A在第t時刻的計算操作,最終計算得到htB。

在第19+2×H個時鐘周期后,開始一次數據串A的第t+1時刻的計算,首先把上一次計算的結果htA取出,之后再重復上文描述的操作,最終計算得到ht+1A。

3.2 詳細設計

3.2.1 MAC模塊

在LSTM神經網絡結構中,運算量最大且耗時最多的模塊是乘累加模塊(MAC)。為降低硬件資源消耗,增加時鐘頻率,提高加速性能,計算模塊采用16 bit定點數進行輸入、輸出[3]。

MAC模塊的設計如圖5所示,其功能為輸入含有32個元素的[xt:ht-1]向量,經過乘累加計算后得到在第t時刻第n個隱層單元的輸出ht(n)。也能夠根據SoC軟件端的指令修改存儲wn,bn的RAM。

圖5 MAC模塊

MAC模塊在初始化時首先接收節點數量信息,如果flag_32=1,則代表X+H<32,即隱層+輸入層節點小于32個,MAC模塊計算一次后的結果直接輸出。如果flag_32=0,則代表X+H<64,MAC模塊計算4次后的結果相加后再輸出。寫入wn,bn時,需要分時寫入X+H個節點的32個權值RAM和1個偏置值RAM,如果X+H<32,那么未使用到的節點RAM賦值為0即可。最后,輸出經LIMIT模塊,限制輸出值符合激活函數模塊輸入規范,使其大于-8且小于8,并轉化為16 bit定點數,延遲1個時鐘后輸出。

3.2.2 激活函數模塊

LSTM單元包含tanh激活函數和Sigmoid激活函數,本文的2種激活函數模塊均使用表驅動線性插值法實現[15-16]。

tanh模塊的電路結構如圖6所示。由于tanh函數圖像為中心對稱,為節省ROM空間,所以輸出分為2段,一段為直接輸出,另一段為取反后輸出。模塊的輸入值經絕對值換算后,其低9位作為ROM的輸入地址,隨后使用表驅動線性插值法計算分段函數,并延遲1個時鐘后輸出。

圖6 tanh模塊

Sigmoid模塊的實現方法和電路結構類似于tanh模塊。

3.2.3 Element-Wise模塊

在得到各門的輸出后,需要在Element-Wise模塊中依次按元素相乘,得到輸出ht和ct。

Element-Wise模塊的電路結構如圖7所示。

圖7 Element-Wise模塊

3.3 資源消耗及吞吐量

在計算吞吐量的過程中,定點數的四則運算操作以及激活函數運算操作都被算作進行了一次操作。假設LSTM神經網絡中輸入層的規模為X,隱藏層的規模為H,那么在模塊的運算中,矩陣的相應元素與向量相乘的操作次數為(X+H)*(H*4),此外,向量的每一列都需要累加其乘法運算的中間值,因此累加階段的操作數為(X+H-1)*(H*4)。Element-Wise階段的操作數為(H*4),激活函數共有5個模塊在使用,故激活函數的操作總數為(H*5)[1]。表1顯示了當X=1,H=31時,各部分運算所需的計算次數。

表1 LSTM模塊浮點運算次數

由控制時序圖可知,經過9.6 μs的計算,LSTM加速器模塊可算出16次結果,故本設計吞吐量為13.7 GOP/s。表2顯示了與其他設計相比,LSTM加速器模塊的頻率、功耗、吞吐量和能效比差別。

表2 不同LSTM結構的性能比較

對比文獻[17]和文獻[18]的設計,本文的設計能夠在同一制程的FPGA中,做到更高的頻率和能效比。對比文獻[19]中更高制程的FPGA設計,能夠達到相似的頻率和能效比。

4 實驗驗證

4.1 LSTM神經網絡燃爆狀態分類測試

為證明LSTM神經網絡能對可燃氣體燃爆狀態進行準確的分類,故在模擬環境中使用從機采集端采集氣體的變化數據,使用SoC處理端對燃爆狀態進行分類。最后通過MATLAB搭建的腳本對這些數據進行性能評估。

圖8所示為硬件系統實物。從機采集端在容積為10 L的密閉箱體內,SoC處理端在此密閉箱體外。

圖8 硬件系統實物

圖9所示為密閉箱體中模擬泄漏的測試組數據。縱坐標為氣體濃度數據歸一化后的數值,橫坐標為數據的時間編號,紫色標簽為實際燃爆狀態編號。

圖9 歸一化后的泄漏測試組數據

實驗開始前,使箱體內的氣體與空氣交換,保證實驗開始時箱體內的氣體與外界的空氣含量接近,以模擬可燃氣體的正常狀態Ⅴ。向密閉箱體中持續注入99%濃度的甲烷氣體以模擬可燃氣體的泄漏中狀態Ⅳ,此時二氧化碳濃度幾乎不變,甲烷濃度迅速上升,由于氧氣被甲烷擠出箱體,所以檢測到的氧氣濃度值下降。停止注入氣體并靜置箱體中的氣體一段時間,以模擬可燃氣體的泄漏后狀態Ⅲ,此時二氧化碳、甲烷和氧氣濃度值保持不變。最后將箱體中的氣體與空氣交換,燃爆狀態重新歸為正常狀態Ⅴ。

圖10所示為密閉箱體中模擬燃燒的測試組數據。實驗開始前使箱體內的氣體與空氣交換,保證實驗開始時箱體內的氣體與外界的空氣含量接近,以模擬可燃氣體的正常狀態Ⅴ。然后在密閉箱體中持續點燃打火機以模擬可燃氣體的燃燒狀態Ⅱ,此時氧氣濃度下降,二氧化碳濃度上升,由于燃燒反應并不能完全燃燒掉打火機噴射的甲烷氣體,所以甲烷濃度略微上升。停止點燃打火機并靜置以模擬可燃氣體的燃燒后狀態Ⅰ,此時二氧化碳、甲烷和氧氣濃度保持不變。最后將箱體中的氣體與空氣交換,燃爆狀態重新歸為正常狀態Ⅴ。

圖10 歸一化后的燃燒測試組數據

4.2 實驗結果

圖11所示為依據箱內氣體變化而實時產生的泄漏狀態分類信息,圖12所示為燃燒狀態分類信息。藍色圓圈標點為實際燃爆分類,紅色星型標點為硬件LSTM神經網絡輸出的燃爆分類。實驗結果表明,在模擬可燃氣體泄漏和燃燒的環境中,硬件LSTM網絡對燃爆狀態分類準確率達96.2%。錯誤分類大部分分布在狀態切換后的最初一段時間。出現這種情況的原因可能是傳感器響應時間不同而導致的分類滯后。

圖11 泄漏實驗分類結果

圖12 燃燒實驗分類結果

LSTM神經網絡的燃爆狀態監測系統,因其時間序列的特性,在網絡訓練時會賦予氣體變化趨勢信息更大的權重,賦予當前氣體輸入數值更小的權重。因此LSTM神經網絡對溫漂較大的氣體傳感器具有較好的抗溫度干擾能力,可以克服BP神經網絡在同樣氣體濃度、不同溫度下分類結果不同的問題。在相同的實驗環境中,使用硬件LSTM神經網絡對可燃氣體燃爆狀態分類的準確率[11]約比BP神經網絡提升了2%。

5 結 語

本文提出了一種應用于可燃氣體燃爆狀態分析的LSTM神經網絡硬件加速系統[11]。該系統基于FPGA搭建了Cortex-M3系列工控處理器IP與LSTM硬件加速器構成的SoC。LSTM硬件加速器采用深度流水線優化的硬件設計,使得LSTM神經網絡的運算速度和運算功耗相比其他文獻的設計具有較大提升。對比BP神經網絡模型和LSTM神經網絡模型對可燃氣體的燃爆狀態分類效果,可以發現LSTM神經網絡在氣體燃爆狀態分類應用中具有更好的抗干擾能力和更高的準確率。

猜你喜歡
分類
2021年本刊分類總目錄
分類算一算
垃圾分類的困惑你有嗎
大眾健康(2021年6期)2021-06-08 19:30:06
星星的分類
我給資源分分類
垃圾分類,你準備好了嗎
學生天地(2019年32期)2019-08-25 08:55:22
分類討論求坐標
數據分析中的分類討論
按需分類
教你一招:數的分類
主站蜘蛛池模板: 中文字幕亚洲专区第19页| 精品在线免费播放| 国产乱视频网站| 日韩欧美中文字幕一本| 亚洲日韩第九十九页| 国产真实二区一区在线亚洲 | 一区二区三区高清视频国产女人| 午夜精品影院| 亚洲国产日韩视频观看| 亚洲第一在线播放| 伊人久久大香线蕉aⅴ色| 日韩欧美国产区| a亚洲天堂| 成人年鲁鲁在线观看视频| 亚洲制服中文字幕一区二区 | 亚洲精品无码AV电影在线播放| 国产青榴视频| 老司国产精品视频91| 国产超碰在线观看| 国产欧美日韩视频怡春院| 99这里只有精品6| 99这里只有精品免费视频| 一级毛片免费观看不卡视频| 大陆国产精品视频| 国产精品专区第1页| 亚洲网综合| 在线观看91精品国产剧情免费| 欧美一级在线| 四虎AV麻豆| 国产av一码二码三码无码| 欧美另类第一页| 亚洲乱码视频| 91精品国产福利| 无码精品一区二区久久久| 欧美性精品不卡在线观看| 欧美国产日韩一区二区三区精品影视| 欧美精品高清| 成人在线综合| 国产精品综合色区在线观看| 国产原创演绎剧情有字幕的| 日韩精品成人在线| 无码精品国产VA在线观看DVD| 91po国产在线精品免费观看| 亚洲男人的天堂网| 有专无码视频| 久久精品亚洲中文字幕乱码| www.91在线播放| 欧美一区二区自偷自拍视频| 国产一级片网址| 免费99精品国产自在现线| 亚洲中久无码永久在线观看软件 | 日本AⅤ精品一区二区三区日| 国产福利在线免费| 国产精品无码在线看| 毛片一级在线| 色偷偷一区二区三区| 91精品在线视频观看| 国产免费久久精品99re丫丫一| 国产日韩精品欧美一区喷| 久久国产精品国产自线拍| 日本一区高清| 色有码无码视频| 国产女人喷水视频| 无码高潮喷水专区久久| 91视频青青草| 无码啪啪精品天堂浪潮av| 综合色亚洲| 国内99精品激情视频精品| 亚洲国产精品无码久久一线| 久久人人爽人人爽人人片aV东京热| 国产91精品久久| 欧美亚洲国产一区| 波多野结衣一区二区三视频| 日韩 欧美 国产 精品 综合| 久久九九热视频| 四虎成人在线视频| 中文字幕无码av专区久久| 国产麻豆精品久久一二三| 欧美激情二区三区| 69av免费视频| 亚洲中文字幕无码mv| 波多野结衣视频一区二区|