0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

開發(fā)嵌入式神經(jīng)網(wǎng)絡(luò)的現(xiàn)實(shí)

石飛鵬 ? 來源:CZM陳先生123 ? 作者:CZM陳先生123 ? 2022-07-15 16:50 ? 次閱讀

關(guān)于將人工智能用于越來越智能的車輛的文章已經(jīng)很多。但是,您如何將在服務(wù)器場(chǎng)上開發(fā)的神經(jīng)網(wǎng)絡(luò) (NN) 壓縮到量產(chǎn)汽車中資源受限的嵌入式硬件中呢?本文探討了我們應(yīng)該如何授權(quán)汽車生產(chǎn) AI 研發(fā)工程師在將 NN 從原型到生產(chǎn)的整個(gè)過程中改進(jìn) NN,而不是像今天過早地將 NN 移交給嵌入式軟件團(tuán)隊(duì)的過程。

“如果我們要充分利用嵌入式硬件資源,我們需要讓生產(chǎn) AI 團(tuán)隊(duì)在軟件移植過程中利用他們對(duì) NN 的知識(shí)”(來源:Marton Feher,SVP 硬件工程,AImotive)

嵌入式人工智能:嵌入式軟件——但不是我們所知道的

對(duì)于任何注定要在批量生產(chǎn)中部署的嵌入式軟件,一旦完成并驗(yàn)證了其核心功能的實(shí)現(xiàn),就會(huì)在代碼中投入大量精力。這個(gè)優(yōu)化階段是關(guān)于最小化所需的內(nèi)存、CPU 和其他資源,以便盡可能多地保留軟件功能,同時(shí)將執(zhí)行它所需的資源減少到絕對(duì)最低限度。

這種從基于實(shí)驗(yàn)室的算法創(chuàng)建嵌入式軟件的過程使生產(chǎn)工程師能夠?qū)④浖δ艹杀竟こ袒癁榭闪慨a(chǎn)的形式,與用于開發(fā)它的海量計(jì)算數(shù)據(jù)中心相比,所需的芯片和硬件更便宜、功能更差。但是,它通常需要從一開始就凍結(jié)功能,只進(jìn)行代碼修改以改進(jìn)算法本身的執(zhí)行方式。對(duì)于大多數(shù)軟件來說,這很好:確實(shí),它可以使用嚴(yán)格的驗(yàn)證方法來確保嵌入過程保留所需的所有功能。

然而,當(dāng)嵌入基于 NN 的 AI 算法時(shí),這可能是一個(gè)主要問題。為什么?因?yàn)閺囊婚_始就凍結(jié)功能,您正在刪除可以優(yōu)化執(zhí)行的主要方法之一。

問題是什么?

有兩種根本不同的方法可以解決將復(fù)雜的 NN 從實(shí)驗(yàn)室中不受約束、資源豐富的 NN 訓(xùn)練環(huán)境移植到受嚴(yán)格約束的嵌入式硬件平臺(tái)的任務(wù):

優(yōu)化執(zhí)行NN的代碼

優(yōu)化神經(jīng)網(wǎng)絡(luò)本身

當(dāng)嵌入式軟件工程師發(fā)現(xiàn)性能問題,例如內(nèi)存帶寬瓶頸或底層嵌入式硬件平臺(tái)利用率低下時(shí),傳統(tǒng)的嵌入式軟件技術(shù)會(huì)鼓勵(lì)您深入挖掘底層代碼并找出問題所在。

這反映在當(dāng)今可用于嵌入式MCUDSP的許多先進(jìn)而復(fù)雜的工具中。它們使您能夠了解軟件中正在發(fā)生的事情的最低水平,并識(shí)別和改進(jìn)軟件本身的執(zhí)行——希望不會(huì)改變其功能。

對(duì)于神經(jīng)網(wǎng)絡(luò)來說,優(yōu)化與傳統(tǒng)的嵌入式軟件完全不同——至少如果你想用可用的硬件資源實(shí)現(xiàn)盡可能最佳的結(jié)果。對(duì)于神經(jīng)網(wǎng)絡(luò),通過改變拓?fù)渖窠?jīng)網(wǎng)絡(luò)本身(神經(jīng)網(wǎng)絡(luò)的各個(gè)層如何連接,以及每個(gè)層做什么)和使用更新的約束和輸入重新訓(xùn)練來實(shí)現(xiàn)改進(jìn)。這是因?yàn)楣δ懿皇怯缮窠?jīng)網(wǎng)絡(luò)“軟件”定義的,而是在訓(xùn)練期間應(yīng)用的目標(biāo)和約束,以創(chuàng)建定義神經(jīng)網(wǎng)絡(luò)最終行為的權(quán)重。

因此,在執(zhí)行神經(jīng)網(wǎng)絡(luò)的嵌入過程時(shí),需要凍結(jié)神經(jīng)網(wǎng)絡(luò)的目標(biāo)性能,而不是如何實(shí)現(xiàn)它。如果您從嵌入過程開始就約束神經(jīng)網(wǎng)絡(luò)拓?fù)?,那么您就是在刪除生產(chǎn)工程師需要的提高性能的工具。

這意味著您需要新的不同工具來完成將NNs從實(shí)驗(yàn)室移植到嵌入式平臺(tái)的任務(wù)。低級(jí)軟件工程師無法完成這項(xiàng)工作——你需要人工智能工程師根據(jù)工具提供的性能信息來調(diào)整神經(jīng)網(wǎng)絡(luò)及其訓(xùn)練。這是新的:當(dāng)研發(fā)工程師將經(jīng)過培訓(xùn)的神經(jīng)網(wǎng)絡(luò)交給生產(chǎn)工程師時(shí),他們?cè)僖膊荒苷f“工作完成了”!

不同的方法

通過采用將 AI 研發(fā)工程師置于嵌入式軟件移植任務(wù)中心的開發(fā)工作流程,任何芯片都可以實(shí)現(xiàn)卓越的結(jié)果。使用以層為中心的分析,輔以從編譯改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò) (CNN) 到查看目標(biāo)神經(jīng)處理器單元 (NPU) 的準(zhǔn)確性能結(jié)果的幾分鐘內(nèi)快速周轉(zhuǎn),開發(fā)人員可以使用相同的底層硬件實(shí)現(xiàn) 100% 或更多的增益. 這是因?yàn)樾薷?CNN 本身,而不是只修改用于執(zhí)行相同 CNN 的代碼,為 AI 工程師提供了更大的靈活性來識(shí)別和實(shí)施性能改進(jìn)。

在開發(fā)我們的 aiWare NPU 時(shí),AImotive 使用了我們自己的 AI 工程師將移植過程移植到具有廣泛 NPU 功能的多個(gè)不同芯片的經(jīng)驗(yàn)。我們希望找到更好的方法來幫助我們自己的 AI 工程師完成這項(xiàng)任務(wù),因此在開發(fā)我們對(duì) aiWare NPU 本身和支持它的 aiWare Studio 工具的要求時(shí),我們確定了我們?cè)谶^去的:

高度確定性的 NPU 架構(gòu),使時(shí)序非常可預(yù)測(cè)

準(zhǔn)確的基于層(不是基于時(shí)序或低級(jí)代碼)的性能估計(jì),以便任何 AI 研發(fā)工程師都可以看到更改其訓(xùn)練標(biāo)準(zhǔn)(例如添加或更改使用的場(chǎng)景,或修改目標(biāo) KPI)的影響; / 或 NN 拓?fù)淇焖?/p>

準(zhǔn)確的離線性能估計(jì),以便在第一個(gè)硬件可用之前執(zhí)行所有 NN 優(yōu)化(因?yàn)榈谝粋€(gè)原型總是稀缺的?。?/p>

點(diǎn)擊查看完整大小的圖片

poYBAGG3EIKAVGprABB3v6LafIM851.png


圖 1:aiWare Studio 使用戶能夠優(yōu)化他們的 NN,而不是用于執(zhí)行它們的代碼。這為 AI 設(shè)計(jì)人員提供了更大的靈活性,可以更快地實(shí)現(xiàn)出色的結(jié)果。(來源:AImotive)

結(jié)果是一組工具使 AI 研發(fā)工程師能夠在實(shí)驗(yàn)室環(huán)境中對(duì)目標(biāo)硬件進(jìn)行幾乎所有優(yōu)化,并在最終目標(biāo)硬件的 5% 范圍內(nèi)展示性能——這一切都在任何人看到硬件之前完成。

最終檢查

當(dāng)然,在芯片和硬件原型可用時(shí)測(cè)量最終硬件至關(guān)重要。這種開發(fā)環(huán)境中實(shí)時(shí)硬件分析功能的可用性使工程師能夠訪問由此類工具支持的 NPU 內(nèi)的一系列深度嵌入式硬件寄存器和計(jì)數(shù)器。雖然芯片開銷很?。ㄒ?yàn)樵S多 NPU 主要由內(nèi)存而非邏輯控制),但這些功能可以在執(zhí)行期間實(shí)現(xiàn)前所未有的、非侵入式的實(shí)時(shí)性能測(cè)量。然后可以將其用于直接與離線性能估計(jì)器結(jié)果進(jìn)行比較,以確認(rèn)準(zhǔn)確性。

點(diǎn)擊查看完整大小的圖片

poYBAGG3EIWAUiOjABWWAeWEhuU271.png


圖 2:使用嵌入式寄存器和計(jì)數(shù)器,aiWare Studio 可以準(zhǔn)確測(cè)量最終芯片性能,與離線估計(jì)結(jié)果相比,通常在 1%-5% 以內(nèi)。(來源:AImotive 和 Nextchip Co. Ltd)

結(jié)論

這種新方法為汽車行業(yè)提供了一種新的、更好的方式來開發(fā)、優(yōu)化和在生產(chǎn)車輛中部署人工智能。使用協(xié)同 NPU 硬件和工具,人工智能工程師可以為汽車應(yīng)用設(shè)計(jì)、實(shí)施和優(yōu)化更好的 CNN。

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5060

    文章

    18979

    瀏覽量

    302235
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4749

    瀏覽量

    100434
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29858

    瀏覽量

    268152
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【飛凌嵌入式OK3576-C開發(fā)板體驗(yàn)】RKNN神經(jīng)網(wǎng)絡(luò)-車牌識(shí)別

    LPRNet基于深層神經(jīng)網(wǎng)絡(luò)設(shè)計(jì),通過輕量級(jí)的卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)車牌識(shí)別。它采用端到端的訓(xùn)練方式,不依賴字符分割,能夠直接處理整張車牌圖像,并輸出最終的字符序列。這種設(shè)計(jì)提高了識(shí)別的實(shí)時(shí)性和準(zhǔn)確性
    發(fā)表于 10-10 16:40

    【飛凌嵌入式OK3576-C開發(fā)板體驗(yàn)】RKNN神經(jīng)網(wǎng)絡(luò)算法開發(fā)環(huán)境搭建

    download_model.sh 腳本,該腳本 將下載一個(gè)可用的 YOLOv5 ONNX 模型,并存放在當(dāng)前 model 目錄下,參考命令如下: 安裝COCO數(shù)據(jù)集,在深度神經(jīng)網(wǎng)絡(luò)算法中,模型的訓(xùn)練離不開大量的數(shù)據(jù)集,數(shù)據(jù)集用于神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練。
    發(fā)表于 10-10 09:28

    【飛凌嵌入式OK3576-C開發(fā)板體驗(yàn)】開箱報(bào)告

    /Linux Buildroot是一個(gè)輕量級(jí)的、針對(duì)嵌入式Linux系統(tǒng)的交叉編譯工具鏈和根文件系統(tǒng)生成器。 較比Unbuntu系統(tǒng)、Debian系統(tǒng)來說開發(fā)起來較為麻煩。Builroot系統(tǒng)缺少很多
    發(fā)表于 10-10 09:22

    基于MCU的神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)

    嵌入式系統(tǒng)和物聯(lián)網(wǎng)(IoT)應(yīng)用中,微控制器(MCU)因其低功耗、低成本和高效能的特點(diǎn)而廣受歡迎。然而,隨著智能應(yīng)用的不斷發(fā)展,傳統(tǒng)MCU在處理復(fù)雜任務(wù),如圖像識(shí)別、語音識(shí)別等時(shí)顯得
    的頭像 發(fā)表于 07-12 18:21 ?1000次閱讀

    BP神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的關(guān)系

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是兩種在人工智能和機(jī)器學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 07-10 15:24 ?1086次閱讀

    BP神經(jīng)網(wǎng)絡(luò)和人工神經(jīng)網(wǎng)絡(luò)的區(qū)別

    BP神經(jīng)網(wǎng)絡(luò)和人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Networks,簡(jiǎn)稱ANNs)之間的關(guān)系與區(qū)別,是神經(jīng)網(wǎng)絡(luò)領(lǐng)域中一個(gè)基礎(chǔ)且重要的話題。本文將從定義、結(jié)構(gòu)、算法、應(yīng)用及未來發(fā)展等多個(gè)方面,詳細(xì)闡述BP
    的頭像 發(fā)表于 07-10 15:20 ?738次閱讀

    rnn是遞歸神經(jīng)網(wǎng)絡(luò)還是循環(huán)神經(jīng)網(wǎng)絡(luò)

    RNN(Recurrent Neural Network)是循環(huán)神經(jīng)網(wǎng)絡(luò),而非遞歸神經(jīng)網(wǎng)絡(luò)。循環(huán)神經(jīng)網(wǎng)絡(luò)是一種具有時(shí)間序列特性的神經(jīng)網(wǎng)絡(luò),能夠處理序列數(shù)據(jù),具有記憶功能。以下是關(guān)于循環(huán)
    的頭像 發(fā)表于 07-05 09:52 ?469次閱讀

    遞歸神經(jīng)網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)

    遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡(jiǎn)稱RNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,簡(jiǎn)稱RNN)實(shí)際上是同一個(gè)概念,只是不同的翻譯方式
    的頭像 發(fā)表于 07-04 14:54 ?600次閱讀

    循環(huán)神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的區(qū)別

    循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是深度學(xué)習(xí)領(lǐng)域中兩種非常重要的神經(jīng)網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-04 14:24 ?1028次閱讀

    深度神經(jīng)網(wǎng)絡(luò)與基本神經(jīng)網(wǎng)絡(luò)的區(qū)別

    在探討深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Networks, DNNs)與基本神經(jīng)網(wǎng)絡(luò)(通常指?jìng)鹘y(tǒng)神經(jīng)網(wǎng)絡(luò)或前向神經(jīng)網(wǎng)絡(luò))的區(qū)別時(shí),我們需要從多個(gè)維度進(jìn)行深入分析。這些維度包括
    的頭像 發(fā)表于 07-04 13:20 ?587次閱讀

    反向傳播神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別

    反向傳播神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network,簡(jiǎn)稱BP神經(jīng)網(wǎng)絡(luò))是一種多層前饋神經(jīng)網(wǎng)絡(luò),它通過反向傳播算法來調(diào)整網(wǎng)絡(luò)中的權(quán)重和偏置,以達(dá)到最小化誤差的
    的頭像 發(fā)表于 07-03 11:00 ?611次閱讀

    bp神經(jīng)網(wǎng)絡(luò)是深度神經(jīng)網(wǎng)絡(luò)

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)是一種常見的前饋神經(jīng)網(wǎng)絡(luò),它使用反向傳播算法來訓(xùn)練網(wǎng)絡(luò)。雖然BP神經(jīng)網(wǎng)絡(luò)在某些方面與深度
    的頭像 發(fā)表于 07-03 10:14 ?609次閱讀

    bp神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)區(qū)別是什么

    BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Network)和卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡(jiǎn)稱CNN)是兩種不同類型的人工神經(jīng)網(wǎng)絡(luò),它們?cè)?/div>
    的頭像 發(fā)表于 07-03 10:12 ?901次閱讀

    卷積神經(jīng)網(wǎng)絡(luò)和bp神經(jīng)網(wǎng)絡(luò)的區(qū)別

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡(jiǎn)稱CNN)和BP神經(jīng)網(wǎng)絡(luò)(Backpropagation Neural Networks,簡(jiǎn)稱BPNN)是兩種
    的頭像 發(fā)表于 07-02 14:24 ?2475次閱讀

    神經(jīng)網(wǎng)絡(luò)在數(shù)學(xué)建模中的應(yīng)用

    數(shù)學(xué)建模是一種利用數(shù)學(xué)方法和工具來描述和分析現(xiàn)實(shí)世界問題的過程。神經(jīng)網(wǎng)絡(luò)是一種模擬人腦神經(jīng)元結(jié)構(gòu)和功能的計(jì)算模型,可以用于解決各種復(fù)雜問題。在數(shù)學(xué)建模中,神經(jīng)網(wǎng)絡(luò)可以作為一種有效的工具
    的頭像 發(fā)表于 07-02 11:29 ?789次閱讀