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

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

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

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

AI模型如何將它導(dǎo)入工程里

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2022-07-14 09:40 ? 次閱讀

相信不少在MCU平臺(tái)使用TensorflowLite Micro(Tensorflow Lite Micro專為嵌入式平臺(tái)推出的專用版TFlite),以下簡(jiǎn)稱TFLm,推理引擎體驗(yàn)過AI的小伙伴們,一定都遇到過這樣的情況:當(dāng)我們歷經(jīng)千辛萬苦訓(xùn)練出來一個(gè)模型之后,要如何將它導(dǎo)入工程里呢?

各抒己見

這時(shí)候有同學(xué)會(huì)說了:我有文件系統(tǒng)啊,模型放到sd卡中,文件操作讀進(jìn)來分分鐘啊!還有的同學(xué)會(huì)說了:我有xxd,當(dāng)然,xxd也是TFLM的御用工具,負(fù)責(zé)將一個(gè)文件以十六進(jìn)制的形式顯示出來,使用過這個(gè)推理引擎的同學(xué)一定對(duì)下面這段注釋很是熟悉:

// xxd -i mobilenet_v1_0.25_128_quant.tflite > mobilenet_v1_0.25_128_quant_model.h

這之后,我們的模型就會(huì)被轉(zhuǎn)化成類似于下面這個(gè)樣子,不要懷疑,這就是我們的模型真正的樣子,并非眉清目秀,在程序中就可以通過mobilenet_model這個(gè)指針來訪問模型數(shù)據(jù):

const char mobilenet_model[] __ALIGNED(16) = {
  0x18, 0x00, 0x00, 0x00, 0x54, 0x46, 0x4c, 0x33, 0x00, 0x00, 0x0e, 0x00,
  0x18, 0x00, 0x04, 0x00, 0x08, 0x00, 0x0c, 0x00, 0x10, 0x00, 0x14, 0x00,
  0x0e, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x78, 0x5b, 0x07, 0x00,
  0x0c, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
  。。。。
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
  0x97, 0x26, 0x08, 0x39
};
unsigned int mobilenet_model_len = 496912;
這時(shí)候,又有同學(xué)說了,你們這些方法都太弱了:你們有SD卡,有文件系統(tǒng),有xxd!這些我統(tǒng)統(tǒng)不需要,不用額外安裝工具,不用文件系統(tǒng)擴(kuò)展,不用看著我這空蕩蕩的錢包,還要祭出小錢錢去買張SD卡。

嗯,我只需要編譯器+裸板即可!要的就是簡(jiǎn)潔(也想高調(diào),可是小錢錢不允許啊)。

不賣關(guān)子了,我們有.incbin。這個(gè)小東西是一個(gè)匯編指令,用來包含某一個(gè)文件到匯編文件中,文件的內(nèi)容將會(huì)按字節(jié)逐一添加到當(dāng)前elf(鏡像文件)節(jié)中。不會(huì)做任何方式的解釋,保證數(shù)據(jù)的完整和一致性。即原封不動(dòng)的添加進(jìn)來,不過要注意,以下代碼要保存在以.s尾綴的匯編文件中:

.global mobilenet_model   // 導(dǎo)出全局符號(hào)
.global mobilenet_model _end
.section .rodata   // 存儲(chǔ)位置

. mobilenet_model :
   .incbin “mobilenet_v1_0.25_128_quant.tflite”
. mobilenet_model_end :

這樣一來,同樣可以使用mobilenet_model這個(gè)模型指針來進(jìn)行模型的訪問。

很難說,上面三位同學(xué)的方法哪一種更好一點(diǎn),可能第三位同學(xué)提出的方法,是對(duì)于外部依賴最少的,只需要利用編譯器對(duì)于匯編指令的支持即可。既不需要費(fèi)力的移植文件系統(tǒng),也不用花費(fèi)小錢錢購買SD卡,也不用求求xxd工具幫我們做事。

當(dāng)然,小編在這里也站一下隊(duì),明確一下立場(chǎng)!我投.incbin一票,當(dāng)然了,這個(gè)也是小編一直在用的方式。更換模型,只需要修改一下導(dǎo)入路徑即可,可以說香的不行了!

新的挑戰(zhàn)

不好,,,好像有點(diǎn)跑題變成夸夸群了,回到主題。

小伙伴既然已經(jīng)回答了小編提出的問題:導(dǎo)入模型的N種方法,小編就再追問大家一個(gè)問題:如果頻繁更新模型要怎么辦呢?

當(dāng)然,使用文件系統(tǒng)的小伙伴可能這時(shí)候會(huì)心一笑了:哈哈,我就知道有這么一出,讓我猜到了吧,比靈活性,沒人能和我比!

的確,無論是使用.incbin還是xxd的方式,每更新一次模型都要對(duì)整個(gè)模型重新編譯下載。而使用文件系統(tǒng)的方式,只需要將模型拖到SD即可,不過根據(jù)程序設(shè)計(jì),是否需要保證模型名字保持一致才能夠正確loading。。。這個(gè)就不是本篇要討論的了。

柳暗花明

相信看到這里的小伙伴們心里已經(jīng)有數(shù)了,小編一定是已經(jīng)找到了另一種替代方案,既能實(shí)現(xiàn)模型的更新,又不用重新對(duì)模型進(jìn)行編譯。是的,小編也就不再賣關(guān)子了,這就揭開廬山真面目。

小編這里要提出的方法,有點(diǎn)類似于引入文件系統(tǒng)的概念,只不過,是一個(gè)手動(dòng)管理的“丐版”文件系統(tǒng)。

一句話概括就是:在非易失性器件上,說普通話就是Nor Flash上開辟一塊固定的區(qū)域來存儲(chǔ)模型,之后我們只需要將最新的模型也同樣下載到這一區(qū)域即可,這樣一來,我們?cè)谥鞒绦蛑校恍枰S護(hù)這一區(qū)域,將其作為模型的數(shù)據(jù)起始地址,就可以達(dá)到實(shí)時(shí)更新模型的目的了。

是不是感覺小編的這個(gè)想法,思路是如此的清晰!而且,還免去了移植文件系統(tǒng)的繁瑣過程,最重要的是,保住了錢包里的小錢錢,不用買SD卡了。

這里特別強(qiáng)調(diào)是Nor Flash,作為可以隨機(jī)讀的器件,可以方便地進(jìn)行隨機(jī)訪問,使用起來或者說在程序的編寫上會(huì)更加的便捷。當(dāng)然,使用NAND flash也未曾不可,有興趣的伙伴可以自行整理。

留下懸念

當(dāng)然,可能有小伙伴要質(zhì)疑:那你這個(gè)可以實(shí)現(xiàn)存儲(chǔ)多個(gè)模型嗎?小編很負(fù)責(zé)任地告訴大家,只要膽子大,宇宙都能給你裝下!只不過,在存放數(shù)據(jù)的時(shí)候,需要額外存儲(chǔ)一些幀頭信息,告知程序一共有多少組模型存儲(chǔ)其中。

小編將在下期為大家介紹如何設(shè)計(jì)合適的存儲(chǔ)結(jié)果以存放我們的flash數(shù)據(jù),并編寫一個(gè)PC端小程序,負(fù)責(zé)進(jìn)行數(shù)據(jù)的轉(zhuǎn)換,敬請(qǐng)期待!

原文標(biāo)題:一種基于MCU的神經(jīng)網(wǎng)絡(luò)模型靈活更新方案之先行篇

文章出處:【微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:彭靜

聲明:本文內(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)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30985

    瀏覽量

    269275
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    285

    瀏覽量

    19916
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3253

    瀏覽量

    48874

原文標(biāo)題:一種基于MCU的神經(jīng)網(wǎng)絡(luò)模型靈活更新方案之先行篇

文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問如何把INA321的Pspice模型導(dǎo)入到proteus

    請(qǐng)問,如何把INA321的Pspice模型導(dǎo)入到proteus
    發(fā)表于 09-11 07:23

    請(qǐng)問RC4580的hspice模型如何導(dǎo)入ADS使用?

    下載的Hspice模型是一壓縮包,里面有.sp .inc .lib .pkg文件,不是常規(guī)的txt文件,想請(qǐng)教一下如何在ADS能夠仿真此模型,或者有什么教程說明這四個(gè)文件如何放置嗎
    發(fā)表于 08-20 07:41

    TINA如何導(dǎo)入OPA356模型

    請(qǐng)問TINA如何導(dǎo)入OPA356模型
    發(fā)表于 08-14 07:55

    VCA824導(dǎo)入Pspice模型到ADS中,為什么找不到14引腳封裝?

    在下載完P(guān)spice模型往ADS中導(dǎo)入時(shí),點(diǎn)擊 File →import→design,選中VCA824.lib,但是我需要的是VCA824ID,SOIC (D)封裝14個(gè)引腳的模型,但是選項(xiàng)
    發(fā)表于 08-01 08:16

    AD7124的程序如何將它導(dǎo)出成hex格式呢?

    ,那么如何將它導(dǎo)出成hex格式呢?我翻遍了其中的資料還是沒有找到辦法。因?yàn)橹挥邪堰@個(gè)hex文件燒寫到黑色的評(píng)估板,才能測(cè)試AD7124呢。
    發(fā)表于 07-23 08:13

    STM CUBE AI錯(cuò)誤導(dǎo)入onnx模型報(bào)錯(cuò)的原因?

    使用cube-AI分析模型時(shí)報(bào)錯(cuò),該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.
    發(fā)表于 05-27 07:15

    為什么用CubeIDE導(dǎo)入AI模型進(jìn)行分析會(huì)報(bào)錯(cuò)?

    python已經(jīng)安裝好了,但是在用CubeAI的時(shí)候,導(dǎo)入模型進(jìn)行分析會(huì)報(bào)錯(cuò),無法分析。有知道為什么會(huì)報(bào)[AI:persondetection][12152] Failed to execute
    發(fā)表于 05-22 06:38

    為什么Cubeai導(dǎo)入模型的時(shí)候報(bào)錯(cuò)[AI:persondetection] ModuleNotFoundError: No module named \'_socket\'?

    在使用CubeIde導(dǎo)入ai模型進(jìn)行模型分析的時(shí)候報(bào)錯(cuò)[AI:persondetection] ModuleNotFoundError: N
    發(fā)表于 05-21 06:44

    【大語言模型:原理與工程實(shí)踐】探索《大語言模型原理與工程實(shí)踐》2.0

    《大語言模型“原理與工程實(shí)踐”》是關(guān)于大語言模型內(nèi)在機(jī)理和應(yīng)用實(shí)踐的一次深入探索。作者不僅深入討論了理論,還提供了豐富的實(shí)踐案例,幫助讀者理解如何將理論知識(shí)應(yīng)用于解決實(shí)際問題。書中的案
    發(fā)表于 05-07 10:30

    防止AI模型被黑客病毒入侵控制(原創(chuàng))聆思大模型AI開發(fā)套件評(píng)測(cè)4

    在設(shè)計(jì)防止AI模型被黑客病毒入侵時(shí),需要考慮到復(fù)雜的加密和解密算法以及模型的實(shí)現(xiàn)細(xì)節(jié),首先需要了解模型的結(jié)構(gòu)和實(shí)現(xiàn)細(xì)節(jié)。 以下是我使用Python和TensorFlow 2.x實(shí)現(xiàn)
    發(fā)表于 03-19 11:18

    cubemx ai導(dǎo)入onnx模型后壓縮失敗了怎么解決?

    cubemx ai導(dǎo)入onnx模型后壓縮失敗。請(qǐng)問我怎么解決
    發(fā)表于 03-19 07:58

    cube AI導(dǎo)入Keras模型出錯(cuò)怎么解決?

    我嘗試過cube AI的version7.1.0、6.0.0、5.1.2、4.1.0,導(dǎo)入Keras都是這個(gè)報(bào)錯(cuò),求解答 E010(InvalidModelError): Couldn&
    發(fā)表于 03-18 06:39

    使用cube-AI分析模型時(shí)報(bào)錯(cuò)的原因有哪些?

    使用cube-AI分析模型時(shí)報(bào)錯(cuò),該模型是pytorch的cnn轉(zhuǎn)化成onnx ``` Neural Network Tools for STM32AI v1.7.0 (STM.
    發(fā)表于 03-14 07:09

    TARGET3001!用法篇-如何將Altium文件導(dǎo)入到TARGET中

    有人問我這個(gè)軟件可不可以導(dǎo)入Altium的文件,因?yàn)樗麄児居玫亩际茿ltium Designer,如果可以把以前AD工程文件直接導(dǎo)進(jìn)TARGET中使用會(huì)方便很多。對(duì)于這個(gè)問題,也是我所關(guān)注
    的頭像 發(fā)表于 02-20 14:38 ?639次閱讀
    TARGET3001!用法篇-<b class='flag-5'>如何將</b>Altium文件<b class='flag-5'>導(dǎo)入</b>到TARGET中

    如何將Klayout Cell動(dòng)態(tài)導(dǎo)入Lumerical Multiphysics

    在本例中,演示了如何將KLayout Library Cell動(dòng)態(tài)導(dǎo)入 Lumerical 以執(zhí)行設(shè)計(jì)掃描和表征。該功能支持動(dòng)態(tài)導(dǎo)入到Lumerical FDTD、MODE以及Multiphysics的所有工具,包括CHARGE
    的頭像 發(fā)表于 01-22 14:27 ?662次閱讀
    <b class='flag-5'>如何將</b>Klayout Cell動(dòng)態(tài)<b class='flag-5'>導(dǎo)入</b>Lumerical Multiphysics
    主站蜘蛛池模板: 国产精品福利片| 久久久WWW免费人成精品| 啊灬啊灬啊灬快高潮视频| free性欧美xxx狂欢| 办公室韩国电影免费完整版| 大胸美女被C得嗷嗷叫动态图| 国产成人久久AV免费看澳门| 国产一卡2卡3卡4卡孕妇网站| 九九久久国产| 嫩草影院永久在线一二三四| 青青视频国产色偷偷| 我要女人的全黄录像| 亚洲熟少妇在线播放999| 中文字幕人妻无码系列第三区| 99在线观看免费视频| 国产成人在线观看免费网站| 好吊射视频988gaocom| 另类重口bdsm日本tv| 日本50人群体交乱| 亚洲AV无码乱码在线观看浪潮| 战狼4在线观看完免费完整版| xart欧美一区在线播放| 国产午夜高潮熟女精品AV| 久热在线这里只有精品7| 人妻熟女斩五十路0930| 亚洲精品国产专区91在线| 97色伦图区97色伦综合图区| 国产成人精品午夜福麻豆报告| 久久99热在线观看7| 青柠在线观看免费全集 | 高H各种PLAY全肉NP| 黄色网址在线看| 欧美性喷潮xxxx| 亚洲精品国产SUV| qovd电影| 精品无人区麻豆乱码1区2| 人妖和美女玩| 伊人久久综合热青草| 丰满少妇被猛烈进出69影院| 久久机热免费视频| 色综合欧美色综合七久久|