Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
tensorflow
GitHub Repository: tensorflow/docs-l10n
Path: blob/master/site/zh-cn/lite/guide/build_arm.md
25118 views

为 ARM 开发板构建 TensorFlow Lite

本页介绍了如何为基于 ARM 的计算机构建 TensorFlow Lite 库。

TensorFlow Lite 支持两种构建系统,而每种构建系统支持的功能不完全相同。请参考下表选择合适的构建系统。

功能BazelCMake
预定义工具链armhf、aarch64armel、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 构建系统。您将使用集成的 ARM GCC 8.3 工具链配合 Bazel 构建 ARM32/64 共享库。

目标架构Bazel 配置兼容设备
armhf (ARM32)--config=elinux_armhfRPI3、RPI4 运行 32 位
: : : Raspberry Pi OS :
AArch64 (ARM64)--config=elinux_aarch64Coral、RPI4 运行 Ubuntu 64
: : : 位 :

注:生成的共享库需要 glibc 2.28 或更高版本才能运行。

以下指令已在 Ubuntu 16.04.3 64 位 PC (AMD64) 和 TensorFlow devel docker 镜像 tensorflow/tensorflow:devel 上进行了测试。

要使用 Bazel 交叉编译 TensorFlow Lite,请按照以下步骤进行操作:

第 1 步:安装 Bazel

Bazel 是 TensorFlow 的主要构建系统。安装最新版本的 Bazel 构建系统

:如果您使用的是 TensorFlow Docker 镜像,则可直接使用 Bazel。

步骤 2. 克隆 TensorFlow 仓库

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

:如果您使用的是 TensorFlow Docker 镜像,则 /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

:请使用 elinux_armhf 进行 32 位 ARM 硬浮点构建。

请查看 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