色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一種基于MCU的神經網絡模型在線更新方案之數據處理篇

jf_pJlTbmA9 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2023-10-17 18:06 ? 次閱讀

書接上文,我們橫向比較了在應用TFLm引擎進行模型文件導入時候,所使用的三種常用方式:

SD卡存儲結合文件系統,

xxd小工具進行文件的十六進制轉換

以及使用匯編指令.incbin直接進行模型導入。

可以說各有所長,但是,當我們需要頻繁地進行模型的替換、更新時,麻煩就出現了。xxd和.incbin的形式都需要重新編譯目標工程,并下載到板子中。

當我們的程序體量較大時,即便不需要對全部工程進行編譯(做到改啥編啥),但是,下載這一步,是無論如何不能跳過的,隨著最終鏡像大小的不同,所消耗的時間也會不同。而使用文件系統的方式,無形中增加了移植文件系統的工作量。

設計思路

為了克服這一問題,小編在上一篇的結尾提出了一個新的方案,直接把flash看作一大塊空白存儲區,并開辟一個固定區域存放模型文件。這樣一來,我們只需要在程序中將模型的讀取位置固定,無論模型是否更新,都能夠讀取最新的模型數據,進行后續處理。

而且小編也特意強調建議大家直接使用Nor Flash來實現這一操作。

以i.MX RT系列MCU為例說明這樣做的優勢。i.MX RT系列由于沒有片上Flash芯片,都通過外擴Flash芯片存儲代碼。當我們將啟動方式調整為XIP,即從flash啟動時,芯片內部的BootROM會幫我們配置初始化好這個片上的Flash芯片,而由于Nor Flash的特性,支持隨機的內存訪問,也就是說,我們在程序內部,可以直接通過指針的形式進行訪問,甚至可以直接調用memcpy函數進行數據的拷貝。

比起集成文件系統的方式,可以說方便至極。不過,也不是說Nand Flash就不適合,只是處理起來會稍稍麻煩一點,由于不支持隨機的讀操作,就要先拷貝到RAM區域再進行操作。

設計實現

言歸正傳,為了方便進行數據的管理,我們需要設計一套簡單的管理邏輯,說的專業一點就是為我們的數據添加一個幀頭,當然,既然大道至簡,數據打包格式大致就是如下格式(可能有些簡陋啊,大家見諒):

wKgaomUD4aSAdgkSAAAdTqdPumA019.png

當然為了能夠在程序中使用,我們再定義一個對應的C語言形式來表達,這里要用到C語言中0長度數組的概念:

struct { uint32_t n, w, h , c; uint8_t data[0]; }

這樣一來,我們就具象化了我們所設計的那個簡單的數據打包協議。

下一步是如何將數據打包成我們要的樣子,這里要借助于Python來編寫一個簡單的腳本處理,并假設最終會生成一個二進制文件,假設輸入一個多維數組results,首先構建其幀頭,默認維度不足4的數據,用1補齊,保證最終的幀頭包含4個維度信息

def save_to_bin(bin_name, results): shape = list(results[0].shape) element_size = [1] * (3 - len(shape)) + shape element_len = len(results) # shape is [N, H, W, C] bin_values = np.asarray([element_len] + element_size, dtype=np.uint32).tobytes() bin_values += results.tobytes() with open(bin_name, "wb") as f: f.write(bin_values) f.close()

聊到這兒,可能有同學會問了,針對于tflite模型,我們往往只需要知道其首地址就好了,TFLm會處理那些長度信息,我還有必要構造幀頭嗎?這下給小編問的有點啞口無言。馬上著手設計了第二種數據結構:

wKgZomUD4aWAZonDAAAT2Tuy7Vc709.png

是的,針對于模型數據這一特殊的存在,可以設計出更加精簡的表達格式,而且,我們知道tflite模型本身實際上已經是二進制文件的形式了,也就是說,可以直接拿過來使用,無需再做任何操作,直接燒寫到固定地址即可。

那我們上面所設計的數據結構就毫無用武之地了嗎?當然不是!小編做這些當然都是有理由的啊。

大家想一想,運行神經網絡模型的時候,光有模型就可以了嗎?當然不,我們還缺少輸入啊!如果你是攝像頭輸入,請跳過這節。而如果是離線測試呢?需要大量加載靜態圖到內存中,是不是和之前我們的分析就類似了。

每次更換測試數據,依舊需要重新下載鏈接,那么按照本文提供的方案,也為數據設置一塊固定的區域,然后借助于上述save_to_bin代碼,將數據打包成固定格式,是不是就可以在程序中利用那個結構體訪問了呢?沒錯!小編早就設計好了。

下期預告

那么至此,小編就給大家介紹了數據的組織結果,以及如何編寫PC端工具對數據進行打包處理,以變成“應用程序可以訪問的樣子”。

當然,考慮到模型文件在使用上的特殊性,也為其設計了特殊的存儲格式,即直接刪去了幀頭,只保留了數據部分。而對于圖像輸入等,需要明確知道其輸入維度的數據,就需要保留幀頭信息了。

在這里再次做個廣告:下一篇我們以i.MX RT1060系列芯片為例,進行MCU實戰部分,包括如何進行C代碼的的編寫獲取數據,Keil的散列加載文件的編寫以實現數據的運行時加載,完成將數據拷從Flash拷貝到sdram等,敬請期待!

來源:恩智浦MCU加油站
免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17458

    瀏覽量

    354460
  • 神經網絡
    +關注

    關注

    42

    文章

    4789

    瀏覽量

    101598
  • 數據處理
    +關注

    關注

    0

    文章

    623

    瀏覽量

    28728
  • 模型
    +關注

    關注

    1

    文章

    3415

    瀏覽量

    49477
收藏 人收藏

    評論

    相關推薦

    怎么設計ARM與神經網絡處理器的通信方案

    FPGA的嵌入式應用。某人工神經網絡的FPGA處理器能夠對數據進行運算處理,為了實現集數據通信、操作控制和
    發表于 09-20 06:15

    怎么解決人工神經網絡并行數據處理的問題

    本文提出了個基于FPGA 的信息處理的實例:個簡單的人工神經網絡應用Verilog 語言描述,該數據流采用模塊化的程序設計,并考慮了模塊
    發表于 05-06 07:22

    如何用ARM和FPGA搭建神經網絡處理器通信方案

    某人工神經網絡的FPGA處理器能夠對數據進行運算處理,為了實現集數據通信、操作控制和數據處理
    發表于 05-21 06:35

    如何構建神經網絡

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡一種基于現有數據創建預測的計算系統。如何構建神經網絡神經網絡包括:輸
    發表于 07-12 08:02

    輕量化神經網絡的相關資料下載

    視覺任務中,并取得了巨大成功。然而,由于存儲空間和功耗的限制,神經網絡模型在嵌入式設備上的存儲與計算仍然是個巨大的挑戰。前面幾篇介紹了如何在嵌入式AI芯片上部署神經網絡:【嵌入式AI
    發表于 12-14 07:35

    隱藏技術: 一種基于前沿神經網絡理論的新型人工智能處理

    隱藏技術: 一種基于前沿神經網絡理論的新型人工智能處理器 Copy東京理工大學的研究人員開發了一種名為“ Hiddenite”的新型加速器芯片,該芯片可以在計算稀疏“隱藏
    發表于 03-17 19:15

    卷積神經網絡模型發展及應用

    十余年來快速發展的嶄新領域,越來越受到研究者的關注。卷積神經網絡(CNN)模型是深度學習模型中最重要的一種經典結構,其性能在近年來深度學習任務上逐步提高。由于可以自動學習樣本
    發表于 08-02 10:39

    一種基于高效采樣算法的時序圖神經網絡系統介紹

    數據一種非結構化的數據,但能夠蘊含很多結構化數據中無法蘊含的信息。圖數據無處不在,世界上大部分數據
    發表于 09-28 10:34

    卷積神經網絡模型有哪些?卷積神經網絡包括哪幾層內容?

    、視頻等信號數據處理和分析。卷積神經網絡就是一種處理具有類似網格結構的數據
    的頭像 發表于 08-21 16:41 ?2059次閱讀

    卷積神經網絡模型搭建

    份詳實、細致的指導。 、什么是卷積神經網絡 在講述如何搭建卷積神經網絡之前,我們需要先了解下什么是卷積神經網絡。 卷積
    的頭像 發表于 08-21 17:11 ?1063次閱讀

    構建神經網絡模型的常用方法 神經網絡模型的常用算法介紹

    神經網絡模型一種通過模擬生物神經元間相互作用的方式實現信息處理和學習的計算機模型。它能夠對輸入
    發表于 08-28 18:25 ?1121次閱讀

    一種基于MCU神經網絡模型靈活更新方案先行

    一種基于MCU神經網絡模型靈活更新方案先行
    的頭像 發表于 10-17 17:48 ?680次閱讀

    人工神經網絡模型一種什么模型

    人工神經網絡(Artificial Neural Networks,簡稱ANNs)是一種受生物神經網絡啟發而產生的數學模型,用于模擬人腦處理
    的頭像 發表于 07-04 16:57 ?1154次閱讀

    rnn是什么神經網絡模型

    RNN(Recurrent Neural Network,循環神經網絡)是一種具有循環結構的神經網絡模型,它能夠處理序列
    的頭像 發表于 07-05 09:50 ?795次閱讀

    基于MCU神經網絡模型設計

    力不從心。神經網絡作為一種強大的機器學習模型,能夠提供高效的數據處理和分析能力,但其計算復雜度和資源需求往往超出了普通MCU的能力范圍。因此
    的頭像 發表于 07-12 18:21 ?1319次閱讀
    主站蜘蛛池模板: 欧美乱码伦视频免费66网 | 亚洲国产综合久久精品 | 色欲AV亚洲情无码AV蜜桃 | FREECHINESE东北女人真爽 free18sex性自拍裸舞 | 亚洲人成影院在线播放 | 国产亚洲欧美在线观看三区 | 国产成人国产在线观看入口 | 好大快用力深一点h视频 | 精品一区二区三区免费毛片 | 国产无遮挡色视频免费观看性色 | 蜜柚视频在线观看全集免费观看 | jizzzz亚洲丰满xxxx | 国产中文字幕乱码免费 | 伊人久久精品AV无码一区 | 美女医生深夜在家裸睡惨死 | 操他射他影院 | s8sp视频高清在线播放 | 福利社的阿姨 | 久久精品亚洲牛牛影视 | 亚洲精品免费视频 | 姉调无修版ova国语版 | 国产色婷亚洲99精品AV在 | 午夜免费无码福利视频麻豆 | 国产99久久九九精品无码不卡 | 国产成人无码区免费内射一片色欲 | 国产精品无码AV天天爽色欲 | 在线观看国产精美视频 | 高清无码中文字幕在线观看视频 | 亚洲qingse中文字幕久久 | 久久人妻AV一区二区软件 | 亚洲永久精品AV在线观看 | 超碰人人澡人人胔 | 毛片网站在线观看 | 一本道高清码v京东热 | 国产精品自产拍在线观看中文 | 丝瓜影院观看免费高清国际观察 | 亚洲欧美日韩在线观看一区二区三区 | 国产精品伦一区二区三级视频 | 啊灬啊灬啊灬快灬深高潮啦 | 亚洲色偷偷偷网站色偷一区人人藻 | 成片免费观看视频在线网 |