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