Watch talks from the 2019 TensorFlow Dev Summit Watch now

针对 Raspberry Pi 从源代码编译

本指南介绍了如何针对运行 Raspbian 9.0Raspberry Pi 设备编译 TensorFlow 软件包。尽管这些说明可能适用于其他 Raspberry Pi 版本,但我们仅针对此配置进行了测试,并且只有此配置支持这些说明。

我们建议交叉编译 TensorFlow Raspbian 软件包。交叉编译是指使用与目标部署平台不同的平台编译该软件包。您可以在运行 Linux、macOS 或 Windows 的更强大主机上轻松编译 TensorFlow,而不使用 Raspberry Pi 的有限内存和相对较慢的处理器。

主机设置

安装 Docker

为了简化依赖项管理,编译脚本使用 Docker 创建用于编译的虚拟 Linux 开发环境。请执行以下命令以验证 Docker 安装效果:docker run --rm hello-world

下载 TensorFlow 源代码

使用 Git 克隆 TensorFlow 代码库

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

代码库默认为 master 开发分支。您也可以检出要编译的版本分支

git checkout branch_name  # r1.9, r1.10, etc.

从源代码编译

交叉编译 TensorFlow 源代码,以根据适用于 Raspberry Pi 2 和 Raspberry Pi 3 设备的 ARMv7 NEON 指令编译 Python pip 软件包。编译脚本会启动 Docker 容器以进行编译。为目标软件包选择 Python 3 或 Python 2.7:

Python 3

CI_DOCKER_EXTRA_PARAMS="-e CI_BUILD_PYTHON=python3 -e CROSSTOOL_PYTHON_INCLUDE_PATH=/usr/include/python3.4" \
    tensorflow/tools/ci_build/ci_build.sh PI-PYTHON3 \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh

Python 2.7

tensorflow/tools/ci_build/ci_build.sh PI \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh

要编译支持所有 Raspberry Pi 设备(包括 Pi 1 和 Pi 0)的软件包,请传递 PI_ONE 参数,例如:

tensorflow/tools/ci_build/ci_build.sh PI \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh PI_ONE

当编译完成(大约需要 30 分钟)时,系统会在主机源代码树的 output-artifacts 目录中创建一个 .whl 软件包文件。将 wheel 文件复制到 Raspberry Pi 并使用 pip 进行安装:

pip install tensorflow-version-cp34-none-linux_armv7l.whl