🧠 TensorFlow Lite (TFLite) 教學入門指南
✅ 一、什麼是 TensorFlow Lite?
TensorFlow Lite 是 Google 推出的 輕量級深度學習推論引擎,專為行動裝置、嵌入式系統(如 Raspberry Pi、Edge TPU)設計。
📌 與 TensorFlow 的差異:
| 項目 | TensorFlow | TensorFlow Lite |
|---|---|---|
| 對象 | 雲端訓練 / GPU | 邊緣裝置 / 嵌入式 |
| 格式 | .pb, .h5, SavedModel |
.tflite |
| 模型大小 | 較大 | 較小(可量化壓縮) |
| 推論速度 | 快(有硬體資源) | 超快(可用 Edge TPU) |
| 是否可訓練 | ✅ | ❌ 僅推論 |
🏗️ 二、工作流程總覽
訓練模型(TensorFlow)
↓
轉換為 .tflite(使用 TFLite Converter)
↓
部署至行動裝置 / IoT / 嵌入式系統
↓
使用 TFLite Interpreter 做推論
🧪 三、TFLite 模型轉換(以 Python 為例)
1️⃣ 安裝 TensorFlow
pip install tensorflow
2️⃣ 將已訓練模型轉成 .tflite
✅ 轉換 SavedModel
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model("my_model") # 資料夾
tflite_model = converter.convert()
# 儲存為 .tflite 檔
with open("model.tflite", "wb") as f:
f.write(tflite_model)
✅ 轉換 Keras 模型
model = tf.keras.models.load_model("model.h5")
converter = tf.lite.TFLiteConverter.from_keras_model(model)
tflite_model = converter.convert()
📦 四、TFLite 推論範例(Python)
安裝推論庫:
pip install tflite-runtime
🔍 使用 tflite-runtime 推論
import numpy as np
import tflite_runtime.interpreter as tflite
# 載入模型
interpreter = tflite.Interpreter(model_path="model.tflite")
interpreter.allocate_tensors()
# 取得輸入 / 輸出資訊
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()
# 模擬一筆輸入資料
input_data = np.array([[0.1, 0.2, 0.3]], dtype=np.float32)
# 輸入資料
interpreter.set_tensor(input_details[0]['index'], input_data)
interpreter.invoke()
# 取得輸出
output_data = interpreter.get_tensor(output_details[0]['index'])
print(output_data)
🎯 五、進階功能:模型量化(減小檔案大小 & 提升效能)
量化(Quantization)會將 float32 模型轉為 int8,極大減少模型大小,並加快推論速度。
🔧 範例:整數量化
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()
💡 六、Raspberry Pi 上部署 TFLite 模型
pip install tflite-runtime
支援硬體:
-
Raspberry Pi
-
Coral Edge TPU(搭配 quantized 模型)
-
Nvidia Jetson(使用 Jetson 特製版本)
🧰 七、應用案例
| 領域 | 範例模型 | 應用平台 |
|---|---|---|
| 影像分類 | MobileNet, EfficientNet | Android, Pi, Microcontroller |
| 物件偵測 | SSD, YOLOv5 TFLite 版 | Raspberry Pi, Coral |
| 姿勢估計 | MoveNet, BlazePose | 健身、互動裝置 |
| NLP 文本分類 | BERT (Distilled) | 聊天機器人 |
| 手勢辨識 | MediaPipe Hand + 自訓分類器 | IoT 手勢控制 |
🔗 官方資源
請先 登入 以發表留言。