網頁

2025年4月1日 星期二

TensorFlow Lite(TFLite) 的完整介紹

 

TensorFlow Lite(TFLite) 的完整介紹,

尤其是針對開發者想應用在邊緣裝置或 TinyML 的角度說明:


📦 TensorFlow Lite 是什麼?

TensorFlow Lite 是 Google 為行動與嵌入式裝置優化的機器學習推論框架。它是 TensorFlow 的輕量級版本,能夠將訓練好的模型壓縮並部署到手機、微控制器、IoT 裝置、樹莓派等資源受限的設備上。


🔧 架構與核心組件

  1. 模型轉換工具(Converter)

    • 將 TensorFlow 訓練好的模型(.pb 或 SavedModel)轉換為 .tflite 格式。

    • 支援「量化」以壓縮模型(例如 float32 → int8)。

  2. TFLite Runtime(推論引擎)

    • 用於載入 .tflite 模型並在裝置上執行推論。

    • 提供 Python、C++、Java、Swift 等 API。

  3. TFLite Micro(TinyML 用)

    • 超小型的版本,可在 微控制器(如 RP2040、STM32、Arduino) 上執行。

    • 不需作業系統(bare-metal 也能跑)。


📉 優化方式

TensorFlow Lite 支援多種 模型優化技術,讓模型在邊緣裝置上更快、更小:

技術說明
量化(Quantization)將 float32 → int8 或 float16,大幅減少模型大小與加速推論。
修剪(Pruning)移除不重要的權重,減少模型計算量。
圖形優化(Graph Optimization)重新安排/簡化計算圖結構,提高效率。

📱 常見應用場景

  • 手機端:

    • 人臉辨識、OCR、語音辨識、即時物件偵測等。

  • 嵌入式裝置 / TinyML:

    • 手勢辨識、環境監控、語音喚醒、預測性維護。

  • IoT 裝置:

    • 智慧家電、自動化感測器、邊緣 AI。


🛠️ 開發流程(簡易版)

  1. 模型訓練:使用 TensorFlow 或 Keras 訓練模型。

  2. 模型轉換:用 tf.lite.TFLiteConverter 轉為 .tflite 檔。

  3. 模型部署:將 .tflite 放入手機或嵌入式裝置。

  4. 推論執行:使用 TFLite API 執行推論並取得結果。


💡 進階工具

工具說明
Netron可視化 .tflite 模型架構。
Edge TPU Compiler.tflite 模型轉換為 Coral Edge TPU 可用格式。
TFLite Model Maker讓初學者快速微調模型並導出 .tflite
TensorFlow Lite Micro為 MCU 設計的 C++ 推論庫,不依賴作業系統或動態記憶體配置。

🎯 TFLite 與 TensorFlow 的差異

項目TensorFlowTensorFlow Lite
適用裝置雲端 / 桌機 / GPU手機 / IoT / MCU
模型格式.pb, SavedModel.tflite
支援訓練❌(只做推論)
支援語言Python(主要)Python, C++, Java, Swift, C(Micro)
模型大小小(可量化)

沒有留言:

張貼留言