TensorFlow Lite(TFLite) 的完整介紹,
尤其是針對開發者想應用在邊緣裝置或 TinyML 的角度說明:
📦 TensorFlow Lite 是什麼?
TensorFlow Lite 是 Google 為行動與嵌入式裝置優化的機器學習推論框架。它是 TensorFlow 的輕量級版本,能夠將訓練好的模型壓縮並部署到手機、微控制器、IoT 裝置、樹莓派等資源受限的設備上。
🔧 架構與核心組件
-
模型轉換工具(Converter):
-
將 TensorFlow 訓練好的模型(
.pb或 SavedModel)轉換為.tflite格式。 -
支援「量化」以壓縮模型(例如 float32 → int8)。
-
-
TFLite Runtime(推論引擎):
-
用於載入
.tflite模型並在裝置上執行推論。 -
提供 Python、C++、Java、Swift 等 API。
-
-
TFLite Micro(TinyML 用):
-
超小型的版本,可在 微控制器(如 RP2040、STM32、Arduino) 上執行。
-
不需作業系統(bare-metal 也能跑)。
-
📉 優化方式
TensorFlow Lite 支援多種 模型優化技術,讓模型在邊緣裝置上更快、更小:
| 技術 | 說明 |
|---|---|
| 量化(Quantization) | 將 float32 → int8 或 float16,大幅減少模型大小與加速推論。 |
| 修剪(Pruning) | 移除不重要的權重,減少模型計算量。 |
| 圖形優化(Graph Optimization) | 重新安排/簡化計算圖結構,提高效率。 |
📱 常見應用場景
-
手機端:
-
人臉辨識、OCR、語音辨識、即時物件偵測等。
-
-
嵌入式裝置 / TinyML:
-
手勢辨識、環境監控、語音喚醒、預測性維護。
-
-
IoT 裝置:
-
智慧家電、自動化感測器、邊緣 AI。
-
🛠️ 開發流程(簡易版)
-
模型訓練:使用 TensorFlow 或 Keras 訓練模型。
-
模型轉換:用
tf.lite.TFLiteConverter轉為.tflite檔。 -
模型部署:將
.tflite放入手機或嵌入式裝置。 -
推論執行:使用 TFLite API 執行推論並取得結果。
💡 進階工具
| 工具 | 說明 |
|---|---|
| Netron | 可視化 .tflite 模型架構。 |
| Edge TPU Compiler | 將 .tflite 模型轉換為 Coral Edge TPU 可用格式。 |
| TFLite Model Maker | 讓初學者快速微調模型並導出 .tflite。 |
| TensorFlow Lite Micro | 為 MCU 設計的 C++ 推論庫,不依賴作業系統或動態記憶體配置。 |
🎯 TFLite 與 TensorFlow 的差異
| 項目 | TensorFlow | TensorFlow Lite |
|---|---|---|
| 適用裝置 | 雲端 / 桌機 / GPU | 手機 / IoT / MCU |
| 模型格式 | .pb, SavedModel | .tflite |
| 支援訓練 | ✅ | ❌(只做推論) |
| 支援語言 | Python(主要) | Python, C++, Java, Swift, C(Micro) |
| 模型大小 | 大 | 小(可量化) |
沒有留言:
張貼留言