このページでは、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 |