色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > R-Car DNN模擬器的介紹 (2)

          R-Car DNN模擬器的介紹 (2)

          發(fā)布人:12345zhi 時間:2023-07-17 來源:工程師 發(fā)布文章

          摘要

          在瑞薩提供的R-Car SoC相關(guān)的一些DNN模擬器中,本文將重點介紹能夠?qū)崿F(xiàn)與實際硬件等價運算的Accurate Simulator,并說明如何應(yīng)用它來分析和提高神經(jīng)網(wǎng)絡(luò)的精度。

          ——太田 寛史 Principal Software Engineer

          背景

          R-Car SoC是我們提出的一種高性能、低功耗的SoC。為了在R-Car SoC上運行客戶用主流深度學習框架(如PyTorch、TensorFlow等)訓練的模型,需要采用剪枝(*1)和量化(*2)等非等效的近似方法進行模型壓縮。我們提供的R-Car CNN工具,不僅可以在R-Car SoC上執(zhí)行上述近似程序,運行客戶訓練好的深度學習模型,還可以根據(jù)客戶的應(yīng)用場景提供不同精度和速度的模擬器。這樣即使您沒有R-Car SoC硬件,也可以驗證操作和進行性能預(yù)估。(*3)

          在各類模擬器中,Accurate Simulator能獲得與實際R-Car SoC最為一致的輸出結(jié)果。本文提出使用Accurate Simulator對模型進行調(diào)試分析和精度改進的方法。通過逐步追蹤在實際的R-Car SoC中無法確認的模型的中間輸出,我們將介紹確定意外結(jié)果產(chǎn)生原因并提高準確性的方法。

          使用場景

          為了將客戶訓練好的深度學習模型轉(zhuǎn)換成可以在R-Car SoC上執(zhí)行的格式,需要進行非等價的近似模型壓縮,如剪枝和量化。量化是一種將為浮點運算的模型近似為整數(shù)運算模型的方法。在這個過程中,每層輸出張量的最大值和最小值由多個輸入圖像估計,每層權(quán)重參數(shù)的最大值和最小值,以及量化參數(shù)(scaleとzero point)將被確定(校準)。當在實際的R-Car SoC或模擬器(*4)上驗證這個量化模型時,與原始訓練模型的結(jié)果相比,不同的輸入圖像數(shù)據(jù)可能會導致意想不到的結(jié)果。在這種情況下,使用Accurate Simulator來分析模型是非常有用的,它可以直接觀察模型中的中間輸出,而這些輸出在實際的R-Car SoC上無法獲取。

          使用Accurate Simulator 進行模型分析的流程

          在上述案例中,校準時輸入圖像數(shù)據(jù)的質(zhì)量或數(shù)量不足,可能導致(a)校準不理想或(b)中間輸出波動較大的層所導致的量化失敗。在這種情況下,首先確定原因是(a)還是(b),然后采取(a)增加或更新輸入圖像數(shù)據(jù)并再次進行校準,或(b)確定發(fā)生問題的層并增加該層的位寬以提高量化模型的準確性等有效方法。

          Accurate Simulator是一個模擬器,旨在確保輸出結(jié)果與實際的R-Car SoC機器完全匹配。與R-Car SoC不同,Accurate Simulator允許用戶提取模型中每一層的中間輸出。具體來說,用戶可以用Accurate Simulator從輸入圖像數(shù)據(jù)的層側(cè)開始逐一提取各層的中間輸出,并與原始訓練模型的中間輸出相比較以確認誤差。

          演示示例

          當使用我們的R-Car SoC時,客戶使用我們的R-Car CNN工具將訓練好的模型轉(zhuǎn)換為R-Car SoC的執(zhí)行格式并執(zhí)行。以下假設(shè)在原始訓練模型(例如TensorFlow)和R-Car SoC的輸出結(jié)果在運行時不匹配的情況下找出原因并解決的方法。我們將說明如何使用Accurate Simulator直接比較原始TensorFlow模型和R-Car可執(zhí)行格式模型的中間輸出來估計量化誤差。

          將客戶訓練好的TensorFlow模型轉(zhuǎn)換為ONNX,并使用我們的R-Car CNN工具將其轉(zhuǎn)換為Accurate Simulator可執(zhí)行的格式,同時提供量化條件和足夠數(shù)量的圖像數(shù)據(jù)用于校準。

          2  運行客戶的TensorFlow模型,提取要比較的層的中間輸出。

          使用R-Car SDK runtime,運行①中生成的Accurate Simulator的執(zhí)行格式模型。需要比較的層的中間輸出可以在這個步驟被提取出來。

          比較在②和③中得到的中間輸出的組成部分。Accurate Simulator的輸出結(jié)果是在模型量化的前提下以整數(shù)表示的,我們也準備了反量化的工具。圖中的圖表顯示了由TensorFlow和Accurate Simulator生成的中間輸出張量成分的直接比較。在這個例子中,比較結(jié)果幾乎是相同的,這一層沒有任何問題。

          重復(fù)步驟①到④,以確定近似被破壞的那一層。通過增加相關(guān)層的量化參數(shù)的顯示位寬(如從8位到16位)可以提高量化模型的輸出結(jié)果精度。

          圖片

          圖1:TensorFlow和Accurate Simulator之間的中間輸出比較流程

          總結(jié)

          本文介紹了一種方法,當客戶訓練的模型在我們的R-Car SoC上運行,其輸出結(jié)果不盡如人意的時候,可以使用Accurate Simulator找出原因并提高模型的精度。Accurate Simulator的設(shè)計是為了獲得與實際R-Car SoC相當?shù)挠嬎憬Y(jié)果,可用于調(diào)查無法使用實際設(shè)備檢查的模型的中間輸出。我們希望客戶能利用這一點進行模型的調(diào)試評估,提高模型的精度。今后,瑞薩將繼續(xù)致力于R-Car CNN工具的開發(fā),供客戶用于模型評估和驗證。

          備注

          (*1)對識別結(jié)果貢獻小的權(quán)重被設(shè)置為零,這些權(quán)重的計算被跳過,從而減少計算量和內(nèi)存的使用。

          (*2)推理過程中浮點計算通常被轉(zhuǎn)換為近似(如8bit)的整數(shù)運算。這里的量化被稱為PTQ(post training quantization),它通過使用多個輸入圖像進行校準來優(yōu)化量化參數(shù)(scale & zero point)。

          (*3)點擊查看往期文章:R-Car DNN模擬器的介紹

          (*4)除了Accurate Simulator外,瑞薩還提供指令集模擬器(ISS),其目的是實現(xiàn)與實際硬件相當?shù)挠嬎憔取2粌H如此,ISS還模擬實際硬件的計算過程本身,使用戶能夠在非常接近實際硬件的環(huán)境下測試模型。

          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: R-Car 模型評估

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉