建構適用於 ARM 白板的 TensorFlow Lite

本頁面說明如何為 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