本頁面說明如何為 ARM 電腦建構 TensorFlow Lite 程式庫。
TensorFlow Lite 支援兩種建構系統,每個建構系統支援的功能並不相同。請參閱下表,挑選適當的建構系統。
功能 | Bazel | CMake |
---|---|---|
預先定義的工具鍊 | armhf、aarch64 | armel、Armhf、aarch64 |
自訂工具鍊 | 較難使用 | 易於使用 |
選取 TF 運算 | 可支援 | 不支援 |
GPU 委派 | (僅適用於 Android) | 凡是支援 OpenCL 的平台 |
XNNPack | 可支援 | 可支援 |
Python Wheel | 可支援 | 可支援 |
C API | 可支援 | 支援 |
C++ API | 支援 Bazel 專案 | 支援 CMake 專案 |
使用 CMake 進行 ARM 跨平台程式碼編譯
如果您有 CMake 專案或想要使用自訂工具鍊,建議您使用 CMake 進行跨平台編譯。請參閱獨立的「跨編譯 TensorFlow Lite 與 CMake」頁面。
使用 Bazel 跨 ARM 跨平台程式碼編譯
如果您有 Bazel 專案,或如要使用 TF 作業,建議您使用 Bazel 建構系統。您將使用與 Bazel 整合的 ARM GCC 8.3 工具鍊,建構 ARM32/64 共用資料庫。
目標架構 | Bazel 設定 | 相容裝置 |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3、RPI4 搭配 32 位元 Raspberry Pi OS |
AArch64 (ARM64) | --config=elinux_aarch64 | 珊瑚紅、RPI4 搭配 Ubuntu 64 位元 |
下列操作說明已在 Ubuntu 16.04.3 64 位元電腦 (AMD64) 和 TensorFlow 開發人員版 Docker 映像檔 tensorflow/tensorflow:devel 上經過測試,
如要使用 Bazel 交叉編譯 TensorFlow Lite,請按照下列步驟操作:
步驟 1:安裝 Bazel
Bazel 是 TensorFlow 的主要建構系統。安裝最新版本的 Bazel 建構系統。
步驟 2:複製 TensorFlow 存放區
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
步驟 3:建構 ARM 二進位檔
C 程式庫
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
您可以在以下位置找到共用資料庫:bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
。
詳情請參閱 TensorFlow Lite C API 頁面。
C++ 程式庫
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
您可以在以下位置找到共用資料庫:bazel-bin/tensorflow/lite/libtensorflowlite.so
。
目前沒有直接的方法能擷取所需的所有標頭檔案,因此您必須從 TensorFlow 存放區加入 tensorflow/lite/ 中的所有標頭檔案。此外,您需要 FlatBuffers 和 Abseil 的標頭檔案。
其他
您也可以使用工具鍊建構其他 Bazel 目標。以下是一些實用的目標
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image