摘要
在瑞薩提供的R-Car SoC相關(guān)的一些DNN模擬器中,本文將重點(diǎn)介紹能夠?qū)崿F(xiàn)與實(shí)際硬件等價(jià)運(yùn)算的Accurate Simulator,并說明如何應(yīng)用它來分析和提高神經(jīng)網(wǎng)絡(luò)的精度。
太田 寛史
Principal Software Engineer
![9eabd0e6-2165-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/C3/wKgZomToC3mAYAgqAACVMhOOIz0868.png)
背景
R-Car SoC是我們提出的一種高性能、低功耗的SoC。為了在R-Car SoC上運(yùn)行客戶用主流深度學(xué)習(xí)框架(如PyTorch、TensorFlow等)訓(xùn)練的模型,需要采用剪枝(*1)和量化(*2)等非等效的近似方法進(jìn)行模型壓縮。我們提供的R-Car CNN工具,不僅可以在R-Car SoC上執(zhí)行上述近似程序,運(yùn)行客戶訓(xùn)練好的深度學(xué)習(xí)模型,還可以根據(jù)客戶的應(yīng)用場景提供不同精度和速度的模擬器。這樣即使您沒有R-Car SoC硬件,也可以驗(yàn)證操作和進(jìn)行性能預(yù)估。(*3)
在各類模擬器中,Accurate Simulator能獲得與實(shí)際R-Car SoC最為一致的輸出結(jié)果。本文提出使用Accurate Simulator對模型進(jìn)行調(diào)試分析和精度改進(jìn)的方法。通過逐步追蹤在實(shí)際的R-Car SoC中無法確認(rèn)的模型的中間輸出,我們將介紹確定意外結(jié)果產(chǎn)生原因并提高準(zhǔn)確性的方法。
![9eabd0e6-2165-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/C3/wKgZomToC3mAYAgqAACVMhOOIz0868.png)
使用場景
為了將客戶訓(xùn)練好的深度學(xué)習(xí)模型轉(zhuǎn)換成可以在R-Car SoC上執(zhí)行的格式,需要進(jìn)行非等價(jià)的近似模型壓縮,如剪枝和量化。量化是一種將為浮點(diǎn)運(yùn)算的模型近似為整數(shù)運(yùn)算模型的方法。在這個(gè)過程中,每層輸出張量的最大值和最小值由多個(gè)輸入圖像估計(jì),每層權(quán)重參數(shù)的最大值和最小值,以及量化參數(shù)(scaleとzero point)將被確定(校準(zhǔn))。當(dāng)在實(shí)際的R-Car SoC或模擬器(*4)上驗(yàn)證這個(gè)量化模型時(shí),與原始訓(xùn)練模型的結(jié)果相比,不同的輸入圖像數(shù)據(jù)可能會(huì)導(dǎo)致意想不到的結(jié)果。在這種情況下,使用Accurate Simulator來分析模型是非常有用的,它可以直接觀察模型中的中間輸出,而這些輸出在實(shí)際的R-Car SoC上無法獲取。
![9eabd0e6-2165-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/C3/wKgZomToC3mAYAgqAACVMhOOIz0868.png)
使用Accurate Simulator
進(jìn)行模型分析的流程
在上述案例中,校準(zhǔn)時(shí)輸入圖像數(shù)據(jù)的質(zhì)量或數(shù)量不足,可能導(dǎo)致(a)校準(zhǔn)不理想或(b)中間輸出波動(dòng)較大的層所導(dǎo)致的量化失敗。在這種情況下,首先確定原因是(a)還是(b),然后采?。╝)增加或更新輸入圖像數(shù)據(jù)并再次進(jìn)行校準(zhǔn),或(b)確定發(fā)生問題的層并增加該層的位寬以提高量化模型的準(zhǔn)確性等有效方法。
Accurate Simulator是一個(gè)模擬器,旨在確保輸出結(jié)果與實(shí)際的R-Car SoC機(jī)器完全匹配。與R-Car SoC不同,Accurate Simulator允許用戶提取模型中每一層的中間輸出。具體來說,用戶可以用Accurate Simulator從輸入圖像數(shù)據(jù)的層側(cè)開始逐一提取各層的中間輸出,并與原始訓(xùn)練模型的中間輸出相比較以確認(rèn)誤差。
![9eabd0e6-2165-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/C3/wKgZomToC3mAYAgqAACVMhOOIz0868.png)
演示示例
當(dāng)使用我們的R-Car SoC時(shí),客戶使用我們的R-Car CNN工具將訓(xùn)練好的模型轉(zhuǎn)換為R-Car SoC的執(zhí)行格式并執(zhí)行。以下假設(shè)在原始訓(xùn)練模型(例如TensorFlow)和R-Car SoC的輸出結(jié)果在運(yùn)行時(shí)不匹配的情況下找出原因并解決的方法。我們將說明如何使用Accurate Simulator直接比較原始TensorFlow模型和R-Car可執(zhí)行格式模型的中間輸出來估計(jì)量化誤差。
1
將客戶訓(xùn)練好的TensorFlow模型轉(zhuǎn)換為ONNX,并使用我們的R-Car CNN工具將其轉(zhuǎn)換為Accurate Simulator可執(zhí)行的格式,同時(shí)提供量化條件和足夠數(shù)量的圖像數(shù)據(jù)用于校準(zhǔn)。
2
運(yùn)行客戶的TensorFlow模型,提取要比較的層的中間輸出。
3
使用R-Car SDK runtime,運(yùn)行①中生成的Accurate Simulator的執(zhí)行格式模型。需要比較的層的中間輸出可以在這個(gè)步驟被提取出來。
4
比較在②和③中得到的中間輸出的組成部分。Accurate Simulator的輸出結(jié)果是在模型量化的前提下以整數(shù)表示的,我們也準(zhǔn)備了反量化的工具。圖中的圖表顯示了由TensorFlow和Accurate Simulator生成的中間輸出張量成分的直接比較。在這個(gè)例子中,比較結(jié)果幾乎是相同的,這一層沒有任何問題。
5
重復(fù)步驟①到④,以確定近似被破壞的那一層。通過增加相關(guān)層的量化參數(shù)的顯示位寬(如從8位到16位)可以提高量化模型的輸出結(jié)果精度。
![wKgZomSzwAOAZtHdAAJ8XQrG-RE122.png](https://file1.elecfans.com/web2/M00/8C/DB/wKgZomSzwAOAZtHdAAJ8XQrG-RE122.png)
圖1:TensorFlow和Accurate Simulator之間的中間輸出比較流程
![9eabd0e6-2165-11ee-962d-dac502259ad0.png](https://file1.elecfans.com//web2/M00/9D/C3/wKgZomToC3mAYAgqAACVMhOOIz0868.png)
總結(jié)
本文介紹了一種方法,當(dāng)客戶訓(xùn)練的模型在我們的R-Car SoC上運(yùn)行,其輸出結(jié)果不盡如人意的時(shí)候,可以使用Accurate Simulator找出原因并提高模型的精度。Accurate Simulator的設(shè)計(jì)是為了獲得與實(shí)際R-Car SoC相當(dāng)?shù)挠?jì)算結(jié)果,可用于調(diào)查無法使用實(shí)際設(shè)備檢查的模型的中間輸出。我們希望客戶能利用這一點(diǎn)進(jìn)行模型的調(diào)試評估,提高模型的精度。今后,瑞薩將繼續(xù)致力于R-Car CNN工具的開發(fā),供客戶用于模型評估和驗(yàn)證。
備注
(*1)對識別結(jié)果貢獻(xiàn)小的權(quán)重被設(shè)置為零,這些權(quán)重的計(jì)算被跳過,從而減少計(jì)算量和內(nèi)存的使用。
(*2)推理過程中浮點(diǎn)計(jì)算通常被轉(zhuǎn)換為近似(如8bit)的整數(shù)運(yùn)算。這里的量化被稱為PTQ(post training quantization),它通過使用多個(gè)輸入圖像進(jìn)行校準(zhǔn)來優(yōu)化量化參數(shù)(scale & zero point)。
(*3)點(diǎn)擊查看往期文章:R-Car DNN模擬器的介紹
(*4)除了Accurate Simulator外,瑞薩還提供指令集模擬器(ISS),其目的是實(shí)現(xiàn)與實(shí)際硬件相當(dāng)?shù)挠?jì)算精度。不僅如此,ISS還模擬實(shí)際硬件的計(jì)算過程本身,使用戶能夠在非常接近實(shí)際硬件的環(huán)境下測試模型。
1
END
1
瑞薩電子 (TSE: 6723)
科技讓生活更輕松,致力于打造更安全、更智能、可持續(xù)發(fā)展的未來。作為全球微控制器供應(yīng)商,瑞薩電子融合了在嵌入式處理、模擬、電源及連接方面的專業(yè)知識,提供完整的半導(dǎo)體解決方案。成功產(chǎn)品組合加速汽車、工業(yè)、基礎(chǔ)設(shè)施及物聯(lián)網(wǎng)應(yīng)用上市,賦能數(shù)十億聯(lián)網(wǎng)智能設(shè)備改善人們的工作和生活方式。更多信息,敬請?jiān)L問renesas.com
原文標(biāo)題:工程師說 | R-Car DNN模擬器的介紹 (2)
文章出處:【微信公眾號:瑞薩電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
-
瑞薩
+關(guān)注
關(guān)注
35文章
22310瀏覽量
86759
原文標(biāo)題:工程師說 | R-Car DNN模擬器的介紹 (2)
文章出處:【微信號:瑞薩電子,微信公眾號:瑞薩電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
電網(wǎng)模擬器工作原理淺析
瑞薩R-Car Gen 5打造面向未來的多域融合車載計(jì)算解決方案
瑞薩R-Car M3的電源設(shè)計(jì)
![瑞薩<b class='flag-5'>R-Car</b> M3的電源設(shè)計(jì)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
電動(dòng)汽車交流接口模擬器相關(guān)介紹
![電動(dòng)汽車交流接口<b class='flag-5'>模擬器</b>相關(guān)<b class='flag-5'>介紹</b>](https://file1.elecfans.com/web3/M00/00/04/wKgZPGdFnmKAJXWVAAcOYtr8MA0646.png)
瑞薩電子推出全新R-Car X5系列汽車多域融合SoC
瑞薩電子發(fā)布R-Car X5系列汽車多域融合SoC
如何使用光伏模擬器
![如何使用光伏<b class='flag-5'>模擬器</b>](https://file1.elecfans.com/web2/M00/0B/71/wKgaomch-IKAC02jAAQ6bL-ZtB0620.png)
瑞薩電子推出R-Car V4M系列SoC,擴(kuò)展ADAS解決方案
瑞薩電子推出全新R-Car V4M系列車用SoC
![瑞薩電子推出全新<b class='flag-5'>R-Car</b> V4M系列車用SoC](https://file1.elecfans.com/web2/M00/09/41/wKgZomcIntWABSF0AAAXNMywfZQ696.jpg)
負(fù)載模擬器是干什么的,負(fù)載模擬器需要接電源嗎
電池模擬器的原理和運(yùn)用介紹
![電池<b class='flag-5'>模擬器</b>的原理和運(yùn)用<b class='flag-5'>介紹</b>](https://file1.elecfans.com/web2/M00/06/0A/wKgZombhT82AO_8nAAZ_KnTjhHo780.png)
![](https://file1.elecfans.com/web2/M00/06/78/wKgaomba0AuAAMXgAAKGtks9xyk435.png)
評論