建立 TensorFlow Lite Python Wheel 套件

本頁說明如何為 x86_64 和各種 ARM 裝置建立 TensorFlow Lite tflite_runtime Python 程式庫。

以下指示已在 Ubuntu 16.04.3 64 位元 PC (AMD64)、macOS Catalina (x86_64) 和 TensorFlow devel Docker 映像檔 tensorflow/tensorflow:devel 上測試過。

先決條件

您需要安裝 CMake 和 TensorFlow 原始碼副本。請查看「使用 CMake 建立 TensorFlow Lite」頁面以瞭解詳情。

若要為您的工作站建立 PIP 套件,您可以執行下列指令。

PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native

ARM 跨編譯

對於 ARM 跨編譯,建議使用 Docker,因為它讓設定跨建置環境更容易。此外,您還需要 target 選項來找出目標架構。

tensorflow/lite/tools/pip_package/Makefile 中的 Makefile 中有一個輔助工具可用於使用預先定義的 Docker 容器叫用建置指令。在 Docker 主機上,您可以執行如下的建置指令。

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>

可用的目標名稱

tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh 指令稿需要目標名稱才能找出目標架構。以下是支援目標的清單。

目標 目標架構 註解
armhf 搭配 Neon 的 ARMv7 VFP 與 Raspberry Pi 3 和 4 相容
rpi0 ARMv6 與 Raspberry Pi Zero 相容
aarch64 aarch64 (ARM 64 位元) Coral Mendel Linux 4.0
搭配 Ubuntu Server 20.04.01 LTS 64 位元 的 Raspberry Pi
native 您的工作站 它使用 "-mnative" 最佳化進行建置
您的工作站 預設目標

建置範例

以下是一些您可以使用的範例指令。

適用於 Python 3.7 的 armhf 目標

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7

適用於 Python 3.8 的 aarch64 目標

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8

如何使用自訂工具鏈?

如果產生的二進位檔與您的目標不相容,您需要使用自己的工具鏈或提供自訂建置旗標。(查看此處以瞭解您的目標環境) 在這種情況下,您需要修改 tensorflow/lite/tools/cmake/download_toolchains.sh 以使用您自己的工具鏈。工具鏈指令稿為 build_pip_package_with_cmake.sh 指令稿定義了以下兩個變數。

變數 用途 範例
ARMCC_PREFIX 定義工具鏈前置字串 arm-linux-gnueabihf-
ARMCC_FLAGS 編譯旗標 -march=armv7-a -mfpu=neon-vfpv4