如何在微控制器中構(gòu)建神經(jīng)網(wǎng)絡(luò)
資料介紹
描述
我們將使用 TensorFflow 訓(xùn)練神經(jīng)網(wǎng)絡(luò)并在微控制器中實(shí)現(xiàn)它。我們的神經(jīng)網(wǎng)絡(luò)將預(yù)測 sin(x)。使用相同的過程,我們可以用正確的數(shù)據(jù)預(yù)測不同的輸出。
人工神經(jīng)網(wǎng)絡(luò)在維基百科中被定義為“受構(gòu)成動物大腦的生物神經(jīng)網(wǎng)絡(luò)模糊啟發(fā)的計(jì)算系統(tǒng)。此類系統(tǒng)通過考慮示例來“學(xué)習(xí)”執(zhí)行任務(wù),通常無需使用特定于任務(wù)的規(guī)則進(jìn)行編程。
所以第一部分是我們必須教神經(jīng)網(wǎng)絡(luò) sin(x) 函數(shù)是怎樣的。

我們在 colab 中使用 TensorFlow,這里是鏈接https://colab.research.google.com/drive/1ABDULCjzvNZJ6TwHpTvAJnKeyM-_kfPR
我們需要訓(xùn)練數(shù)據(jù),所以我們得到 x, y 對訓(xùn)練:

x, y 對用于測試我們的神經(jīng)網(wǎng)絡(luò):

神經(jīng)網(wǎng)絡(luò)中的基本計(jì)算單位是神經(jīng)元或節(jié)點(diǎn),它從其他一些節(jié)點(diǎn)或外部源接收輸入并計(jì)算輸出。每個輸入都有一個關(guān)聯(lián)的權(quán)重 (a),這是根據(jù)其對其他輸入的相對重要性加上常量分配的,稱為偏差 (b)。該節(jié)點(diǎn)將非線性函數(shù)應(yīng)用于其輸入的加權(quán)和,稱為激活函數(shù)。在我們的例子中,我們使用 softsign 函數(shù)作為激活函數(shù)。

我們現(xiàn)在定義一個簡單的神經(jīng)網(wǎng)絡(luò),節(jié)點(diǎn)按層排列。相鄰層的節(jié)點(diǎn)之間有連接或邊緣。所有這些連接都有與之關(guān)聯(lián)的權(quán)重。我們使用四層,一個輸入層,兩個隱藏層和一個輸出層。
- 輸入節(jié)點(diǎn)——輸入節(jié)點(diǎn)將外部世界的信息提供給網(wǎng)絡(luò),統(tǒng)稱為“輸入層”。在任何輸入節(jié)點(diǎn)中都不會執(zhí)行任何計(jì)算。
- 隱藏節(jié)點(diǎn)——隱藏節(jié)點(diǎn)與外界沒有直接聯(lián)系(因此得名“隱藏”)。它們執(zhí)行計(jì)算并將信息從輸入節(jié)點(diǎn)傳輸?shù)捷敵龉?jié)點(diǎn)。隱藏節(jié)點(diǎn)的集合形成一個“隱藏層”。它可以有零個或多個隱藏層。
- 輸出節(jié)點(diǎn)——輸出節(jié)點(diǎn)統(tǒng)稱為“輸出層”,負(fù)責(zé)計(jì)算和將信息從網(wǎng)絡(luò)傳輸?shù)酵饨纭?/font>
我們在輸入層有一個節(jié)點(diǎn),在第一個隱藏層有 10 個節(jié)點(diǎn),在第二個隱藏層有 3 個節(jié)點(diǎn),在輸出層有一個節(jié)點(diǎn)。這是圖表:

在 TensorFlow 中定義為:

。
我們評估模型,誤差非常低。

為了在微控制器中實(shí)現(xiàn)模型,我們需要架構(gòu),我們之前定義了三層和每個節(jié)點(diǎn)的權(quán)重。

正如我們所料,我們有三層,這些是權(quán)重:

輸入層只有一個輸入 x 我們要計(jì)算 y = sin(x)。
第一隱藏層有10個節(jié)點(diǎn),每個節(jié)點(diǎn)執(zhí)行操作:

所以第一個數(shù)組有 10 個元素,每個節(jié)點(diǎn)一個“a”,第二個 10 個元素的數(shù)組是“b”。

第二個隱藏層有 3 個節(jié)點(diǎn)和 10 個輸入,所以我們有一個 3x10 數(shù)組用于每個節(jié)點(diǎn)的“a”,以及 3 個數(shù)組用于“b”。


輸出層是一個有 3 個輸入的節(jié)點(diǎn),所以我們有 3 個“a”和一個“b”。


我使用 platformio + vs 代碼。對于 MT3620,您需要從此處安裝平臺支持https://github.com/Wiz-IO/platform-azure
現(xiàn)在我們可以在微控制器中實(shí)現(xiàn)它。我已經(jīng)在 MT3620 板的 M7 內(nèi)核和 ESP32 中實(shí)現(xiàn)了它。
我們只需要兩個函數(shù),一個用于層,我們傳遞每個節(jié)點(diǎn)的輸入數(shù)、層中的節(jié)點(diǎn)數(shù)、權(quán)重、偏差和輸入:

一個用于激活函數(shù),softsign 函數(shù):

我們使用串行端口請求輸入,然后將其傳遞給第一個隱藏層,結(jié)果傳遞給第二個隱藏層,輸出傳遞給輸出層:

最后,我們將預(yù)測與 sin 函數(shù)的輸出進(jìn)行比較。

可以在 ESP32 中使用相同的代碼并獲得相同的結(jié)果。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
- 基于人工神經(jīng)網(wǎng)絡(luò)的系統(tǒng)辨識與控制 8次下載
- 神經(jīng)網(wǎng)絡(luò)控制簡介 9次下載
- 人工神經(jīng)網(wǎng)絡(luò)控制 13次下載
- 神經(jīng)網(wǎng)絡(luò)及其在GIS中的應(yīng)用 11次下載
- 神經(jīng)網(wǎng)絡(luò)在控制中的應(yīng)用總結(jié) 7次下載
- 神經(jīng)網(wǎng)絡(luò)與神經(jīng)網(wǎng)絡(luò)控制的學(xué)習(xí)課件免費(fèi)下載 7次下載
- 如何使用S函數(shù)實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)PID控制器及Simulink仿真的資料說明 28次下載
- 基于BP神經(jīng)網(wǎng)絡(luò)的PID控制器的研究與實(shí)現(xiàn)
- CMAC神經(jīng)網(wǎng)絡(luò)模糊控制器設(shè)計(jì)
- 仿人模糊神經(jīng)網(wǎng)絡(luò)控制器的設(shè)計(jì)和實(shí)現(xiàn)
- 神經(jīng)網(wǎng)絡(luò)逆控制在除氧器控制中的應(yīng)用
- 基于PLC的神經(jīng)網(wǎng)絡(luò)PID控制器設(shè)計(jì)
- 神經(jīng)網(wǎng)絡(luò)在PLC控制系統(tǒng)中的應(yīng)用
- 基于RBF 的模糊神經(jīng)網(wǎng)絡(luò)控制器設(shè)計(jì)與仿真分析
- 仿人模糊神經(jīng)網(wǎng)絡(luò)控制器的設(shè)計(jì)和實(shí)現(xiàn)
- BP神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)的關(guān)系 1677次閱讀
- BP神經(jīng)網(wǎng)絡(luò)和人工神經(jīng)網(wǎng)絡(luò)的區(qū)別 1222次閱讀
- PyTorch神經(jīng)網(wǎng)絡(luò)模型構(gòu)建過程 533次閱讀
- 神經(jīng)網(wǎng)絡(luò)預(yù)測模型的構(gòu)建方法 745次閱讀
- 深度神經(jīng)網(wǎng)絡(luò)與基本神經(jīng)網(wǎng)絡(luò)的區(qū)別 1006次閱讀
- 使用PyTorch構(gòu)建神經(jīng)網(wǎng)絡(luò) 746次閱讀
- 神經(jīng)網(wǎng)絡(luò)在圖像識別中的應(yīng)用 744次閱讀
- 神經(jīng)網(wǎng)絡(luò)中的激活函數(shù)有哪些 624次閱讀
- 電機(jī)控制系統(tǒng)的神經(jīng)網(wǎng)絡(luò)優(yōu)化策略 724次閱讀
- 如何構(gòu)建神經(jīng)網(wǎng)絡(luò) 1913次閱讀
- 如何提升神經(jīng)網(wǎng)絡(luò)性能 2353次閱讀
- BP神經(jīng)網(wǎng)絡(luò)概述 4.4w次閱讀
- 利用SQL查詢語句構(gòu)建隱藏層的神經(jīng)網(wǎng)絡(luò) 1164次閱讀
- node.js在訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型識別圖像中物體的方法 9193次閱讀
- 基于FPGA的神經(jīng)網(wǎng)絡(luò)算法的設(shè)計(jì) 5650次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論