构建 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 页面。

如需为工作站构建画中画软件包,您可以运行以下命令。

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

ARM 交叉编译

对于 ARM 交叉编译,建议使用 Docker,因为它可以更轻松地设置跨构建环境。此外,您还需要一个 target 选项来确定目标架构。

Makefile tensorflow/lite/tools/pip_package/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 和 Raspberry Pi 4 兼容
rpi0 ARMv6 与 Raspberry Pi Zero 兼容
aarch64 aarch64(ARM 64 位) Coral Mendel Linux 4.0
Raspberry Pi 与 Ubuntu Server 20.04.01 LTS 64 位
原生 您的工作站 它利用“-mnative”优化功能构建
默认 您的工作站 默认目标

build 示例

以下是一些您可以使用的示例命令。

适用于 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