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

Build TensorFlow Lite Python Wheel Package

This page describes how to build the TensorFlow Lite tflite_runtime Python library for x86_64 and various ARM devices.

The following instructions have been tested on Ubuntu 16.04.3 64-bit PC (AMD64) , macOS Catalina (x86_64) and TensorFlow devel Docker image tensorflow/tensorflow:devel.

Note: This feature is available since version 2.4.

Prerequisites

You need CMake installed and a copy of the TensorFlow source code. Please check Build TensorFlow Lite with CMake page for the details.

To build the PIP package for your workstation, you can run the following commands.

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

Note: If you have multiple Python interpreters available, specify the exact Python version with PYTHON variable. (Currently, it supports Python 3.7 or higher)

ARM cross compilation

For ARM cross compilation, it's recommended to use Docker since it makes easier to setup cross build environment. Also you needs a target option to figure out the target architecture.

There is a helper tool in Makefile tensorflow/lite/tools/pip_package/Makefile available to invoke a build command using a pre-defined Docker container. On a Docker host machine, you can run a build command as followings.

make -C tensorflow/lite/tools/pip_package docker-build \ TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>

Note: Python version 3.7 or higher is supported.

Available target names

tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh script needs a target name to figure out target architecture. Here is the list of supported targets.

TargetTarget architectureComments
armhfARMv7 VFP with NeonCompatible with Raspberry Pi 3 and 4
rpi0ARMv6Compatible with Raspberry Pi Zero
aarch64aarch64 (ARM 64-bit)Coral Mendel Linux 4.0
Raspberry Pi with Ubuntu Server 20.04.01 LTS 64-bit
nativeYour workstationIt builds with "-mnative" optimization
Your workstationDefault target

Build examples

Here are some example commands you can use.

armhf target for Python 3.7

make -C tensorflow/lite/tools/pip_package docker-build \ TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7

aarch64 target for Python 3.8

make -C tensorflow/lite/tools/pip_package docker-build \ TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8

How to use a custom toolchain?

If the generated binaries are not compatible with your target, you need to use your own toolchain or provide custom build flags. (Check this to understand your target environment) In that case, you need to modify tensorflow/lite/tools/cmake/download_toolchains.sh to use your own toolchain. The toolchain script defines the following two variables for the build_pip_package_with_cmake.sh script.

VariablePurposeexample
ARMCC_PREFIXdefines toolchain prefixarm-linux-gnueabihf-
ARMCC_FLAGScompilation flags-march=armv7-a -mfpu=neon-vfpv4

Note: ARMCC_FLAGS might need to contain Python library include path. See the download_toolchains.sh for the reference.