18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>用微語音控制交通燈

用微語音控制交通燈

2023-06-27 | zip | 0.00 MB | 次下載 | 免費

資料介紹

描述

介紹和動機

機器學習通常涉及大量計算能力,這些計算能力通常以帶有 GPU 的大型數(shù)據(jù)中心的形式出現(xiàn),訓練深度神經(jīng)網(wǎng)絡(luò)的成本可能是天文數(shù)字。小至 14 KB 的微型神經(jīng)網(wǎng)絡(luò)的出現(xiàn)為新應(yīng)用打開了大量大門,這些應(yīng)用可以直接在微處理器本身上分析數(shù)據(jù)并得出可操作的見解(Warden 和 Situnayake,2019 年)。這可以節(jié)省時間并防止延遲,因為我們不必將數(shù)據(jù)傳輸?shù)皆茢?shù)據(jù)中心進行處理并等待其返回(Warden 和 Situnayake,2019 年)。這種現(xiàn)象稱為邊緣計算,允許在存儲數(shù)據(jù)的設(shè)備上處理和計算數(shù)據(jù)(Lea,2020)。

學習過程:模型訓練

首先,在我開始這個項目之前,我不知道邊緣計算或 Arduino 是什么。正如技術(shù)列表所示,我必須使用并協(xié)調(diào)整個工具生態(tài)系統(tǒng),才能實現(xiàn)在運行良好的 Arduino 板上部署語音識別的目標。

我做的第一件事是下載 VS Code IDE 并確保安裝了 Platform IO 擴展。同時,我必須下載 Arduino IDE 并包含 TensorFlow Lite 庫。在 VS Code 中,我從 Arduino IDE 導入了內(nèi)置的微語音示例,作為一個運行良好的示例。該模型接收到“yes”的輸入,打開 Arduino 上的綠色 LED“否”打開了 Arduino 上的紅色 LED;所有其他打開 Arduino 上的藍色 LED 的單詞;或沒有打開 LED 的靜音。

TensorFlow 已經(jīng)在其 GitHub 存儲庫中提供了訓練腳本:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/lite/micro/examples/micro_speech/train/train_micro_speech_model.ipynb。

這個腳本也是我想如何為我的特定用例訓練微語音模型的基礎(chǔ)。

我最初開始將訓練腳本從 TensorFlow 版本 1.x 轉(zhuǎn)換為 2.x,因為后者的性能優(yōu)化和簡化的 API 調(diào)用。但是,我無法轉(zhuǎn)換整個腳本,因為在 TensorFlow v2 中沒有等效于 v1 的“tf.lite.constants.INT8”模塊。

修改這個腳本實際上是一個巨大的挑戰(zhàn)。主要因素是因為每當我對模型進行更改時,都需要大約 2 個小時來訓練,所以我選擇的超參數(shù)沒有快速和即時的反饋。我無法通過經(jīng)常試驗和操縱許多參數(shù)來執(zhí)行“快速原型設(shè)計”。我遇到的最令人抓狂的問題是,當我在 TensorFlow 中訓練模型后,當我嘗試量化模型并從中生成 TensorFlow Lite 模型時,我會收到如下錯誤消息:

poYBAGN0M_SAQnH-AACbi9MOfj0145.png
?

我對此進行了大量研究,結(jié)果發(fā)現(xiàn)這很可能歸因于我每次在 Colab 單元中運行代碼片段時創(chuàng)建的嵌套圖,因此新占位符無法獲得所需的輸入值在評估階段。每次我重新運行我的訓練腳本來訓練微語音模型時,我都通過重新啟動我的 GPU 來解決這個問題。

通過使用“go”和“stop”進行訓練,我的模型得到的初始準確率為 87.2%,因此我認為可以通過將訓練步數(shù)從 15,000 次迭代增加到 25,000 次來改進它。我也很愚蠢同時 tweeked 另一個變量是模型將識別的喚醒詞的數(shù)量,因為我在列表中添加了“向后”和“向前”。

我用 25, 000 步訓練的模型的準確度實際上下降到了 85%。花了幾乎兩倍的時間,3.5 小時,但準確度下降了!造成這種情況的原因可能有兩個:1)混淆矩陣變大,必須識別更大的詞向量并對更大的詞向量更敏感,因此準確率下降;2)峰值性能實際上是在 15,000 個訓練步驟,模型進入收益遞減階段。

我用兩個額外的喚醒詞回到最初的 15,000 個訓練步驟,我的模型的最終準確率為 85.8%。因此,從這個結(jié)果中,我可以得出一個結(jié)論,即最有可能達到峰值性能需要用 15,000 步進行訓練。

poYBAGN0M_aAZJ_VAACX7zDwdkc575.png
經(jīng)過 15,000 步訓練的最終模型
?

?

pYYBAGN0M_mADog6AACrSYuxwP4728.png
模型經(jīng)過 15,000 次迭代訓練。
?

?

poYBAGN0M_uACLaTAACMW7w45nA967.png
模型經(jīng)過 25,000 次迭代訓練。
?

從我之前在課堂上的作業(yè)來看,0.001 和 0.0001 的學習率產(chǎn)生了具有最高準確度的模型,所以我用它們來訓練我的模型。

我所做的其他調(diào)整是模型的實際架構(gòu)。有幾個可供選擇,其中包括一個全尺寸的卷積神經(jīng)網(wǎng)絡(luò)。我最初選擇了 MODEL_ARCHITECTURE = 'conv' 并嘗試將該模型部署到我的 Arduino。結(jié)果是模型太大,Arduino 無法處理,所以每當我試圖在麥克風中說出喚醒詞時,它都會拋出一堆“請求失敗”錯誤而關(guān)閉。之后我了解到,Arduino 可以處理的唯一模型架構(gòu)是其中包含“tiny”一詞的架構(gòu),例如效果最好的“tiny_conv”和“tiny_embedding_conv”。這些模型架構(gòu)已經(jīng)預先打包在訓練腳本中并可以使用。

“tiny_conv”模型有一個卷積層,然后是一個具有 4 x 4000 權(quán)重的全連接層,最后一層是 softmax 層。

我選擇用來訓練模型的詞多種多樣。該模型從識別“是”和“否”開始,它們之間的區(qū)別足夠大,與“開”和“關(guān)”等其他詞對相比,它們不容易混淆。然后我決定添加“前進”和“后退”,使這個模型像交通信號/停車信號一樣。當說出“STOP”或“BACKWARD”時 LED 會變?yōu)榧t色,當說出“GO”或“FORWARD”時 LED 會變?yōu)榫G色。如果說出不屬于這四個類別中的任何一個的單詞,LED 將變?yōu)樗{色。沉默根本不會打開 LED。

微語音模型本質(zhì)上是將傳給麥克風的音頻輸入轉(zhuǎn)換為頻譜圖,然后通過 TensorFlow Lite 運行它以對說出的單詞進行分類。一旦模型完成訓練,訓練腳本就會生成一個名為 model.cc 的二進制模型文件。此二進制文件中的數(shù)據(jù)將使用腳本訓練的模型和模型的二進制長度編碼到一個名為 micro_features_model.cpp 的文件中。

pYYBAGN0M_6AcUa_AAF6vWkiW9o322.png
訓練期間輸入到模型的頻譜圖
?

我使用 TensorBoard 來顯示準確度和交叉熵的進展,它們應(yīng)該分別增加和減少。紅線指的是驗證數(shù)據(jù)集上的性能,它定期發(fā)生,因此數(shù)據(jù)點稀疏。藍線指的是訓練數(shù)據(jù)集上的性能,它經(jīng)常出現(xiàn),所以這些線更接近。

pYYBAGN0NACAad6CAAEIFBxMxNw813.png
?

除了“未知”和“沉默”之外,還有一個名為 kCategoryCount 的變量表示模型需要分類的詞數(shù)。對于我的特定用例,kCategoryCount 等于 6。

學習過程:部署到 Arduino

到目前為止,我剛剛討論了訓練模型并使其達到盡可能高準確度的挑戰(zhàn)。下一個障礙是將這個模型部署到 Arduino。

困擾我的最大挑戰(zhàn)是一個錯誤,說我在項目文件夾中定義了兩次模型。我花費了大量時間梳理所有不同的文件以解決該錯誤。事實證明,我忘記刪除舊的#include 語句,該語句引用的模型與我試圖部署到 Arduino 的模型不同。為了避免將來混淆,我給我的模型取了一個簡單的名稱,并刪除了與另一個模型相關(guān)的任何其他文件。我只是清理了我的項目文件夾并選擇了極簡主義。錯誤如下所示。

pYYBAGN0NASAT1BJAAK_NyQ1_H0042.png
錯誤,因為我在我的項目文件夾中定義了兩個不同的模型,并且沒有刪除對舊模型的引用。
?

一旦我清除了這個障礙,我很快就被另一堵磚墻迎接了。該程序能夠編譯,但我無法將其上傳到 Arduino。我得到的錯誤是沒有檢測到上傳端口,所以我無法將模型上傳到 Arduino。我非常焦慮,因為我認為是我的 MacBook Pro 出現(xiàn)問題并且無法檢測到外部設(shè)備。我通過將 USB 插入它來測試這個理論,看看它是否會識別它,事實上它確實做到了。我只能摸不著頭腦,將開發(fā)轉(zhuǎn)移到我的 Windows 計算機上。在將我的模型部署到 Arduino 之前,一切都按預期工作。我得到了完全相同的錯誤,然后我開始非常擔心。我的 Arduino 會壞嗎?寄給我的是有缺陷的嗎?我什至從 Windows 7 移動到 Windows 10 并得到了同樣的錯誤!這變得非常令人擔憂。最后要檢查的是我的微型 USB 電纜。我用過舊的微型 USB 來為我的 Android 手機充電。這實際上是最后一個要改變的變量。如果切換我的微型 USB 電纜仍然不允許我將模型上傳到 Arduino,我只能寫下我無法上傳模型的原因。

我在下面的屏幕截圖中顯示了我的編譯成功但上傳失敗。

poYBAGN0NAaARjAGAAEBRveXF-s001.png
模型已編譯但上傳失敗
?

?

poYBAGN0NAmAbt7BAAEAbxxgUpQ335.png
由于無法檢測到上傳端口,模型無法上傳
?

我將我的微型 USB 電纜換成了另一根更長且不是專門為手機充電的電纜……這是驚人的結(jié)果!

pYYBAGN0NAuASbWeAADBcWrC2UQ678.png
?

?

poYBAGN0NA6AE9yNAAC7KCrbkXM882.png
模型成功上傳到我的 Arduino!
?

事實證明,無法檢測到上傳端口的原因是因為微型 USB 電纜有問題!我再放心不過了。

在部署到 Arduino 時解決了這兩個問題后,我現(xiàn)在可以自由地將模型部署到它。端口錯誤確實出現(xiàn)了,但這次我找到了 Arduino 推薦的快速解決方案:“如果板子沒有進入上傳模式,請在啟動上傳過程之前雙擊重置按鈕; 橙色 LED 應(yīng)該會慢慢淡入淡出,表明開發(fā)板正在等待上傳?!?在 Arduino 上執(zhí)行此重置操作可解決任何端口檢測錯誤。

更多研究還建議在上傳之前對構(gòu)建文件進行清理,如此屏幕截圖所示。

pYYBAGN0NBCAWWkSAAECohb1I7M486.png
?

學習這些漂亮的技巧將使我進入與 Arduinos 合作的下一階段。

pYYBAGN0NBKALLEzAAC3Tmk2XF0768.png
?

未來的工作

能夠在 Arduino 上部署微型深度學習模型徹底改變了物聯(lián)網(wǎng)和邊緣計算的功能。由于成本的顯著降低,可能性是無窮無盡的。由于模型的準確性可能會更好,因此仍有很多改進工作要做。提高準確性在某種程度上仍然是一項黑盒活動,尤其是在使用此類新技術(shù)的情況下,因此通過操縱多個參數(shù)進行徹底的實驗將使我們更接近更好的模型。這個特定模型的音頻輸入非常簡單,下一個合乎邏輯的舉措是訓練并使用完整的短語來控制 Arduino,無論它仍然打開不同顏色的 LED 燈,還是讓它以另一種方式響應(yīng)。盡管在這個階段,Arduino 上的實現(xiàn)更多的是 POC,而不是可擴展或大規(guī)模工業(yè)生產(chǎn),但它讓我們對這個新的前沿領(lǐng)域有所了解。利用算法簡化的力量,我們可以將這些 POC 提供的解決方案堆疊和組合在一起,以解決與安全相關(guān)的更難、時間敏感的問題,例如機器人手術(shù)或自動駕駛汽車。

參考

Lea, P. (2020)。面向建筑師的物聯(lián)網(wǎng)和邊緣計算——第二版。O'Reilly 電子[在線]。網(wǎng)址為:https ://learning.oreilly.com/library/view/iot-and-edge/9781839214806/ (訪問日期:2020 年 12 月 14 日)。

Warden, P. 和 Situnayake, D. (2019)。TinyML。O'Reilly 電子書[在線]。網(wǎng)址為:https ://learning.oreilly.com/library/view/tinyml/9781492052036/ (訪問日期:2020 年 11 月 10 日)。

監(jiān)獄長,P.(2017 年)。啟動語音命令數(shù)據(jù)集[在線]。網(wǎng)址為:https ://ai.googleblog.com/2017/08/launching-speech-commands-dataset.html (訪問日期:2020 年 12 月 5 日)。

?

?

?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1PFC電路與BOOST電路設(shè)計實例分享
  2. 1.83 MB   |  12次下載  |  4 積分
  3. 2世平基于靈動微 SPIN560C 的低壓無刷電機應(yīng)用方案
  4. 10.93 MB  |  11次下載  |  免費
  5. 3電源測試報告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  6. 6.47 MB  |  11次下載  |  免費
  7. 4PWM控制器的控制方法
  8. 0.39 MB   |  3次下載  |  4 積分
  9. 5電流檢測芯片F(xiàn)P135應(yīng)用說明
  10. 1.24 MB   |  3次下載  |  免費
  11. 6全面解讀被動式與主動式PFC電路
  12. 1.27 MB   |  1次下載  |  4 積分
  13. 7HC88L051F4低功耗芯片規(guī)格書
  14. 4.76 MB  |  1次下載  |  免費
  15. 8CIU32D655x5數(shù)據(jù)手冊
  16. 2.14 MB   |  1次下載  |  免費

本月

  1. 1常用電子元器件使用手冊
  2. 2.40 MB   |  52次下載  |  免費
  3. 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
  4. 2.27 MB   |  33次下載  |  10 積分
  5. 3PFC電路與BOOST電路設(shè)計實例分享
  6. 1.83 MB   |  12次下載  |  4 積分
  7. 4世平基于靈動微 SPIN560C 的低壓無刷電機應(yīng)用方案
  8. 10.93 MB  |  11次下載  |  免費
  9. 5電源測試報告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
  10. 6.47 MB  |  11次下載  |  免費
  11. 6USB拓展塢PCB圖資料
  12. 0.57 MB   |  11次下載  |  免費
  13. 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊
  14. 4.51 MB   |  9次下載  |  免費
  15. 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊
  16. 0.70 MB   |  9次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935134次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191424次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183352次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81600次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73818次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65991次下載  |  10 積分