TensorFlow Lite Python Wheel パッケージをビルドする

このページでは、x86_64 およびさまざまな ARM デバイス用の TensorFlow Lite tflite_runtime Python ライブラリをビルドする方法について説明します。

以下の手順は、Ubuntu 16.04.3 64 ビット PC(AMD64)、macOS Catalina(x86_64)、TensorFlow 開発用 Docker イメージ tensorflow/tensorflow:devel でテストされています。

前提条件

CMake がインストールされ、TensorFlow ソースコードのコピーが必要です。詳しくは、CMake で TensorFlow Lite をビルドするのページをご覧ください。

ワークステーション用の PIP パッケージをビルドするには、次のコマンドを実行します。

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 スクリプトには、ターゲット アーキテクチャを把握するためにターゲット名が必要です。サポートされているターゲットは次のとおりです

Target ターゲット アーキテクチャ コメント
ARMHF ARMv7 VFP(Neon) Raspberry Pi 3 および 4 と互換性があります。
rpi0 ARMv6 Raspberry Pi Zero に対応
aarch64 aarch64(ARM 64 ビット) Coral Mendel Linux 4.0
Ubuntu Server 20.04.01 LTS 64-bit 搭載の Raspberry Pi
ネイティブ ワークステーション 「-mnative」最適化でビルドする
default ワークステーション デフォルトのターゲット

ビルド例

使用できるコマンドの例を以下に示します。

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 スクリプト用に次の 2 つの変数を定義します。

変数 Purpose 説明します
ARMCC_PREFIX ツールチェーンの接頭辞を定義します arm-linux-gnueabihf-
ARMCC_FLAGS コンパイル フラグ -march=armv7-a -mfpu=neon-vfpv4