本頁面說明如何為 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 進行跨編譯。另有一個獨立的使用 CMake 進行 TensorFlow Lite 跨編譯頁面可供參考。
使用 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 | Coral、RPI4 (搭載 Ubuntu 64 位元) |
下列操作說明已在 Ubuntu 16.04.3 64 位元 PC (AMD64) 和 TensorFlow devel 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