This guide builds a TensorFlow package for a Raspberry Pi device running Raspbian 9.0. While the instructions might work for other Raspberry Pi variants, it is only tested and supported for this configuration.
We recommend cross-compiling the TensorFlow Raspbian package. Cross-compilation is using a different platform to build the package than deploy to. Instead of using the Raspberry Pi's limited RAM and comparatively slow processor, it's easier to build TensorFlow on a more powerful host machine running Linux, macOS, or Windows.
Setup for host
To simplify dependency management, the build script uses
Docker to create a virtual Linux
development environment for compilation. Verify your Docker install by executing:
docker run --rm hello-world
Download the TensorFlow source code
git clone https://github.com/tensorflow/tensorflow.git
The repo defaults to the
master development branch. You can also checkout a
git checkout branch_name # r1.9, r1.10, etc.
Build from source
Cross-compile the TensorFlow source code to build a Python pip package with ARMv7 NEON instructions that works on Raspberry Pi 2 and 3 devices. The build script launches a Docker container for compilation. Choose between Python 3 and Python 2.7 for the target package:
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
tensorflow/tools/ci_build/ci_build.sh PI \ tensorflow/tools/ci_build/pi/build_raspberry_pi.sh
To build a package that supports all Raspberry Pi devices—including the Pi 1 and
PI_ONE argument, for example:
tensorflow/tools/ci_build/ci_build.sh PI \ tensorflow/tools/ci_build/pi/build_raspberry_pi.sh PI_ONE
When the build finishes (~30 minutes), a
.whl package file is created in the
output-artifacts directory of the host's source tree. Copy the wheel file to the
Raspberry Pi and install with
pip install tensorflow-version-cp34-none-linux_armv7l.whl