基本介紹
- 中文名:TinyML:基於TensorFlow Lite在Arduino和超低功耗微控制器上部署機器學習
- 別名:蜂鳥書
- 作者:(美)皮特•沃登(Pete Warden)、(美)丹尼爾•西圖納亞克(Daniel Situnayake)
- 譯者:魏蘭、卜傑、王鐵震
- 出版時間:2020年9月
- 出版社:機械工業出版社
- 頁數:432 頁
- ISBN:978711166422
- 定價:149 元
- 開本:16 開
- 裝幀:平裝
內容簡介,圖書目錄,
內容簡介
深度學習網路正在變得越來越小。GoogleAssistant團隊可以使用大小只有14KB的模型檢測單詞——模型小到可以在微控制器上運行。在這本實用的書中,你將進入TinyML的世界。TinyML將深度學習和嵌入式系統相結合,使得微型設備可以做出令人驚嘆的事情。
本書解釋了如何訓練足夠小的模型以適合任何環境。對於希望在嵌入式系統中搭建機器學習項目的軟體及硬體開發人員而言,本書是一個理想的指南,它將一步步地指導你搭建一系列TinyML項目。閱讀本書不需要任何機器學習或者微控制器開發經驗。
你將深入了解以下內容:
·如何創建語音識別程式、行人檢測程式和回響手勢的魔杖程式。
·如何使用Arduino和超低功耗微控制器。
·機器學習的基本知識以及如何訓練自己的模型。
·如何訓練模型以理解音頻、圖像和加速度感測器數據。
·如何使用TensorFlow Lite forMicrocontrollers,這是Google用於TinyML的工具包。
·如何調試程式並提供隱私和安全保障。
·如何最佳化延遲、功耗、模型以及二進制檔案大小。
圖書目錄
前言1
第1章 簡介5
1.1 嵌入式設備6
1.2 技術變遷7
第2章 入門8
2.1 本書目標讀者8
2.2 需要的硬體8
2.3 需要的軟體10
2.4 我們希望你學到的東西10
第3章 快速了解機器學習12
3.1 什麼是機器學習13
3.2 深度學習的工作流程14
3.3 小結27
第4章 TinyML之“Hello World”:創建和訓練模型28
4.1 我們要創建什麼29
4.2 我們的機器學習工具鏈30
4.3 創建我們的模型32
4.4 訓練我們的模型43
4.5 為TensorFlow Lite轉換模型56
4.6 小結61
第5章 TinyML之“Hello World”:創建應用程式62
5.1 詳解測試63
5.2 項目檔案結構79
5.3 詳解源檔案80
5.4 小結87
第6章 TinyML之“Hello World”:部署到微控制器88
6.1 什麼是微控制器88
6.2 Arduino89
6.3 SparkFun Edge98
6.4 ST Microelectronics STM32F746G Discovery套件109
6.5 小結115
第7章 喚醒詞檢測:創建應用程式116
7.1 我們要創建什麼117
7.2 套用架構118
7.3 詳解測試121
7.4 監聽喚醒詞139
7.5 部署到微控制器143
7.6 小結164
第8章 喚醒詞檢測:訓練模型165
8.1 訓練我們的新模型166
8.2 在我們的項目中使用模型179
8.3 模型的工作方式184
8.4 使用你自己的數據訓練194
8.5 小結198
第9章 行人檢測:創建應用程式199
9.1 我們在創建什麼200
9.2 應用程式架構201
9.3 詳解測試204
9.4 行人檢測210
9.5 部署到微處理器213
9.6 小結232
第10章 行人檢測:訓練模型233
10.1 選擇機器233
10.2 配置Google Cloud Platform實例233
10.3 訓練框架選擇240
10.4 構建數據集241
10.5 訓練模型241
10.6 TensorBoard243
10.7 評估模型245
10.8 將模型導出到TensorFlow Lite245
10.9 訓練其他類別247
10.10 理解架構248
10.11 小結248
第11章 魔杖:創建應用程式250
11.1 我們要創建什麼252
11.2 應用程式架構254
11.3 詳解測試255
11.4 檢測手勢264
11.5 部署到微處理器268
11.6 小結293
第12章 魔杖:訓練模型294
12.1 訓練模型295
12.2 模型是如何工作的303
12.3 訓練你自己的數據311
12.4 小結315
第13章 TensorFlow Lite for Microcontrollers317
13.1 什麼是TensorFlow Lite for Microcontrollers317
13.2 編譯系統323
13.3 支持一個新的硬體平台331
13.4 支持一個新的IDE或新的編譯系統336
13.5 在項目和代碼庫之間整合代碼更改337
13.6 回饋開源338
13.7 支持新的硬體加速器339
13.8 理解檔案格式340
13.9 將TensorFlow Lite移動平台運算元移植到Micro347
13.10 小結350
第14章 設計你自己的TinyML應用程式351
14.1 設計過程351
14.2 你需要微控制器還是更大的設備351
14.3 了解可行性352
14.4 站在巨人的肩膀上353
14.5 找一些相似的模型訓練353
14.6 查看數據354
14.7 綠野仙蹤355
14.8 先可以在桌面系統中運行356
第15章 最佳化延遲357
15.1 首先確保你要最佳化的部分很重要357
15.2 更換硬體358
15.3 改進模型358
15.4 量化360
15.5 產品設計361
15.6 最佳化代碼362
15.7 最佳化運算元363
15.8 回饋開源368
15.9 小結368
第16章 最佳化功耗369
16.1 開發直覺369
16.2 測量實際功耗372
16.3 估算模型的功耗373
16.4 降低功耗373
16.5 小結375
第17章 最佳化模型和二進制檔案大小376
17.1 了解系統限制376
17.2 估算記憶體使用率376
17.3 關於不同問題的模型準確率和規模的大致數字379
17.4 模型選擇380
17.5 減小執行檔的大小380
17.6 真正的微型模型386
17.7 小結386
第18章 調試387
18.1 訓練與部署之間準確率的損失387
18.2 數值差異389
18.3 神秘的崩潰與掛起391
18.4 小結394
第19章 將模型從TensorFlow移植到TensorFlow Lite395
19.1 了解需要什麼運算元395
19.2 查看Tensorflow Lite中支持的運算元396
19.3 將預處理和後處理移至應用程式代碼396
19.4 按需自己實現運算元397
19.5 最佳化運算元397
19.6 小結398
第20章 隱私、安全和部署399
20.1 隱私399
20.2 安全401
20.3 部署403
20.4 小結404
第21章 了解更多405
21.1 TinyML基金會405
21.2 SIG Micro405
21.3 TensorFlow網站406
21.4 其他框架406
21.5 Twitter406
21.6 TinyML的朋友們406
21.7 小結407
附錄A 使用和生成Arduino庫ZIP檔案409
附錄B 在Arduino上捕獲音頻411