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

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

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

3天內不再提示

為什么可以在STM32上面跑神經網絡

TopSemic嵌入式 ? 來源:果果小師弟 ? 作者:智果芯 ? 2022-04-12 17:33 ? 次閱讀

摘要為什么可以在STM32上面跑神經網絡?簡而言之就是使用STM32CubeMX中的X-Cube-AI擴展包將當前比較熱門的AI框架進行C代碼的轉化,以支持在嵌入式設備上使用,目前使用X-Cube-AI需要在STM32CubeMX版本5.0以上,支持轉化的模型有Keras、TFlite、ONNX、Lasagne、Caffe、ConvNetJS。Cube-AI把模型轉化為一堆數組,而后將這些數組內容解析成模型,和Tensorflow里的模型轉數組后使用原理是一樣的。

一、環境安裝和配置

  1. STM32CubeMX
  2. MDK/IAR/STM32CubeIDE
  3. F4/H7/MP157開發板

二、AI神經網絡模型搭建

這里使用官方提供的模型進行測試,用keras框架訓練:

為什么可以在STM32上面跑神經網絡
https://github.com/Shahnawax/HAR-CNN-Keras

模型介紹

在Keras中使用CNN進行人類活動識別:此存儲庫包含小型項目的代碼。該項目的目的是創建一個簡單的基于卷積神經網絡(CNN)的人類活動識別(HAR)系統。該系統使用來自3D加速度計的傳感器數據,并識別用戶的活動,例如:前進或后退。HAR意為Human Activity Recognition(HAR)system,即人類行為識別。這個模型是根據人一段時間內的3D加速度數據,來判斷人當前的行為,比如走路,跑步,上樓,下樓等,很符合Cortex-M系列MCU的應用場景。使用的數據如下圖所示。

為什么可以在STM32上面跑神經網絡

HAR用到的原始數據

存儲庫包含以下文件

  1. HAR.py,Python腳本文件,包含基于CNN的人類活動識別(HAR)模型的Keras實現,
  2. actitracker_raw.txt、包含此實驗中使用的數據集的文本文件,
  3. model.h5,一個預訓練模型,根據訓練數據進行訓練,
  4. evaluate_model.py、Python 腳本文件,其中包含評估腳本。此腳本在提供的 testData 上評估預訓練 netowrk 的性能,
  5. testData.npy,Python 數據文件,包含用于評估可用預訓練模型的測試數據,
  6. groundTruth.npy,Python 數據文件,包含測試數據的相應輸出的地面真值和
  7. README.md.

這么多文件不要慌,模型訓練后得到model.h5模型,才是我們需要的。

三、新建工程

1.這里默認大家都已經安裝好了STM32CubeMX軟件。

在STM32上驗證神經網絡模型(HAR人體活動識別),一般需要STM32F3/F4/L4/F7/L7系列高性能單片機,運行網絡模型一般需要3MB以上的閃存空間,一般的單片機不支持這么大的空間,CUBEMX提供了一個壓縮率的選項,可以選擇合適的壓縮率,實際是壓縮神經網絡模型的權重系數,使得網絡模型可以在單片機上運行,壓縮率為8,使得模型縮小到366KB,驗證可以通過;

為什么可以在STM32上面跑神經網絡

然后按照下面的步驟安裝好CUBE.AI的擴展包

為什么可以在STM32上面跑神經網絡

這個我安裝了三個,安裝最新版本的一個版本就可以。

為什么可以在STM32上面跑神經網絡

接下來就是熟悉的新建工程了

為什么可以在STM32上面跑神經網絡

因為安裝了AI的包,所以在這個界面會出現artificial intelligence這個選項,點擊Enable可以查看哪一些芯片支持AI

為什么可以在STM32上面跑神經網絡

接下來就是配置下載接口和外部晶振了。

為什么可以在STM32上面跑神經網絡
為什么可以在STM32上面跑神經網絡

然后記得要選擇一個串口作為調試信息打印輸出。

為什么可以在STM32上面跑神經網絡

選擇Software Packs,進入后把AI相關的兩個包點開,第一個打上勾,第一個選擇Validation。

為什么可以在STM32上面跑神經網絡
為什么可以在STM32上面跑神經網絡
  • System Performance工程:整個應用程序項目運行在STM32MCU上,可以準確測量NN推理結果,CP∪U負載和內存使用情況。使用串行終端監控結果(e.g.Tera Term)
  • Validation工程:完整的應用程序,在桌面PC和基于STM32 Arm Cortex-m的MCU嵌入式環境中,通過隨機或用戶測試數據,遞增地驗證NN返回的結果。與 X-CUBE-A驗證工具一起使用。
  • Application Template工程:允許構建應用程序的空模板項目,包括多網絡支持。

之后左邊欄中的Software Packs點開,選擇其中的X-CUBE-AI,彈出的Mode窗口中兩個復選框都打勾,Configuration窗口中,點開network選項卡。

為什么可以在STM32上面跑神經網絡

選擇剛剛配置的串口作為調試用。

為什么可以在STM32上面跑神經網絡

點擊add network,選擇上述下載好的model點h5模型,選擇壓縮倍數8;

為什么可以在STM32上面跑神經網絡

點擊分析,可從中看到模型壓縮前后的參數對比

為什么可以在STM32上面跑神經網絡

點擊validation on desktop 在PC上進行模型驗證,包括原模型與轉換后模型的對比,下方也會顯示驗證的結果。

為什么可以在STM32上面跑神經網絡

至此,模型驗證完成,下面開始模型部署

四、模型轉換與部署

時鐘配置,系統會自動進行時鐘配置。按照你單片機的實際選型配置時鐘就可以了。

為什么可以在STM32上面跑神經網絡
為什么可以在STM32上面跑神經網絡
為什么可以在STM32上面跑神經網絡

最后點擊GENERATE CODE生成工程。

為什么可以在STM32上面跑神經網絡

然后在MDK中編譯鏈接。

為什么可以在STM32上面跑神經網絡

選擇好下載器后就可以下載代碼了。

為什么可以在STM32上面跑神經網絡
為什么可以在STM32上面跑神經網絡

然后打開串口調試助手就可以看到一系列的打印信息了。

為什么可以在STM32上面跑神經網絡

代碼燒寫在芯片里后,回到CubeMX中下圖所示位置,我們點擊Validate on target,在板上運行驗證程序,效果如下圖,可以工作,證明模型成功部署在MCU中。

為什么可以在STM32上面跑神經網絡
為什么可以在STM32上面跑神經網絡

這次就這樣先跑一下官方的例程,以后再研究一下,跑跑自己的模型。

原文標題:我在STM32單片機上跑神經網絡算法

文章出處:【微信公眾號:TopSemic嵌入式】歡迎添加關注!文章轉載請注明出處。

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

    關注

    42

    文章

    4771

    瀏覽量

    100714
  • STM32
    +關注

    關注

    2270

    文章

    10895

    瀏覽量

    355734
  • 模型
    +關注

    關注

    1

    文章

    3226

    瀏覽量

    48807

原文標題:我在STM32單片機上跑神經網絡算法

文章出處:【微信號:TopSemic,微信公眾號:TopSemic嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【PYNQ-Z2試用體驗】神經網絡基礎知識

    神經網絡的計算。對于多層多節點的神經網絡,我們可以使用矩陣乘法來表示。在上面神經網絡中,我們將權重作為一個矩陣,將第一層的輸入作為另一個矩
    發表于 03-03 22:10

    卷積神經網絡如何使用

    卷積神經網絡(CNN)究竟是什么,鑒于神經網絡工程上經歷了曲折的歷史,您為什么還會在意它呢? 對于這些非常中肯的問題,我們似乎可以給出相對簡明的答案。
    發表于 07-17 07:21

    【案例分享】基于BP算法的前饋神經網絡

    期望的輸出。BP神經網絡算法推導(更新權重和偏倚):從上面推導可以發現:對于任意從神經元i(輸出神經元/隱層
    發表于 07-21 04:00

    【案例分享】ART神經網絡與SOM神經網絡

    是一種常用的無監督學習策略,使用改策略時,網絡的輸出神經元相互競爭,每一時刻只有一個競爭獲勝的神經元激活。ART神經網絡由比較層、識別層、
    發表于 07-21 04:30

    如何設計BP神經網絡圖像壓縮算法?

    神經網絡(Neural Networks)是人工神經網絡(Ar-tificial Neural Networks)的簡稱,是當前的研究熱點之一。人腦接受視覺感官傳來的大量圖像信息后,能迅速做出反應
    發表于 08-08 06:11

    如何構建神經網絡

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡是一種基于現有數據創建預測的計算系統。如何構建神經網絡?神經網絡包括:輸入層:根據現有數據獲取輸入的層隱藏層:使用反向傳播優化輸入變量權重的層,以提高模型的預測
    發表于 07-12 08:02

    STM32上驗證神經網絡模型

    STM32CubeMx.AI的使用歡迎使用Markdown編輯器STM32論壇中看到這樣一個視頻:視頻中,
    發表于 08-03 06:59

    基于BP神經網絡的PID控制

    最近在學習電機的智能控制,上周學習了基于單神經元的PID控制,這周研究基于BP神經網絡的PID控制。神經網絡具有任意非線性表達能力,可以通過對系統性能的學習來實現具有最佳組合的PID控
    發表于 09-07 07:43

    如何使用stm32cube.ai部署神經網絡?

    如何用stm32cube.ai簡化人工神經網絡映射?如何使用stm32cube.ai部署神經網絡?
    發表于 10-11 08:05

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

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

    卷積神經網絡一維卷積的處理過程

    inference設備端上做。嵌入式設備的特點是算力不強、memory小。可以通過對神經網絡做量化來降load和省memory,但有時可能memory還吃緊,就需要對神經網絡
    發表于 12-23 06:16

    xr806板子上如何實現用ncnn神經網絡mnis呢

    xr806板子上如何實現用ncnn神經網絡mnis呢?
    發表于 12-28 06:51

    神經網絡移植到STM32的方法

    神經網絡移植到STM32最近在做的一個項目需要用到網絡進行擬合,并且將擬合得到的結果用作控制,就在想能不能直接在單片機上做神經網絡計算,這樣就可以
    發表于 01-11 06:20

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

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

    為什么可以STM32上面神經網絡?

    Keras中使用CNN進行人類活動識別:此存儲庫包含小型項目的代碼。該項目的目的是創建一個簡單的基于卷積神經網絡(CNN)的人類活動識別(HAR)系統。
    發表于 12-26 15:41 ?837次閱讀
    主站蜘蛛池模板: 小黄文纯肉污到你湿| 欧美亚洲韩日午夜| 青青视频国产色偷偷| 无码爽死成人777在线观看网站| 亚洲欧美综合在线中文| yy4408午夜场理论片| 韩国女人高潮嗷嗷叫视频 | 亚洲午夜精品AV无码少妇 | 欧美hdxxxx| 亚洲国产综合另类视频| yellow片在线观看免费观看动漫| 沦为公交两奶头春药高潮迭起| 成人免费在线视频| 久久一级片| 亚洲精品福利一区二区在线观看| 色多多污网站在线观看| 视频一区国产精戏刘婷30| 91国偷自产一区二区三区| 精品国产九九| 小莹的性荡生活| 国产精品久人妻精品| 人妻超级精品碰碰在线97视频 | 色欲av蜜臀av高清| a视频免费看| 欧美成人国产| 99精品在线免费| 免费在线伦理片| 18动漫在线观看| 葵司中文第一次大战黑人| 蜜臀AV浪潮99国产麻豆| 最新国产精品福利2020| 久久成人伊人欧洲精品AV| 校花被扒衣吸乳羞羞漫画| 国产精品亚洲视频在线观看| 天天狠狠弄夜夜狠狠躁·太爽了| 超碰caoporon最新视频| 欧美国产精品久久久乱码| ca88亚洲城娱乐| 人妻少妇69式99偷拍| 日本久久和电影| 成人精品视频|