このページでは、x86_64 およびさまざまな ARM デバイス用の TensorFlow Lite tflite_runtime
Python ライブラリをビルドする方法について説明します。
次の手順は、Ubuntu 16.04.3 64 ビット PC (AMD64) 、macOS Catalina (x86_64) および TensorFlow devel 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
スクリプトには、ターゲット アーキテクチャを把握するためにターゲット名が必要です。サポートされているターゲットのリストは次のとおりです。
目標 | ターゲットアーキテクチャ | コメント |
---|---|---|
アームフ | Neon を使用した ARMv7 VFP | Raspberry Pi 3および4と互換性があります |
rpi0 | ARMv6 | Raspberry Pi Zeroと互換性あり |
aarch64 | aarch64 (ARM 64 ビット) | コーラルメンデル Linux 4.0 Raspberry Pi とUbuntu Server 20.04.01 LTS 64 ビット |
ネイティブ | あなたのワークステーション | 「-mnative」最適化でビルドします |
あなたのワークステーション | デフォルトのターゲット |
構築例
使用できるコマンドの例をいくつか示します。
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 つの変数を定義します。
変数 | 目的 | 例 |
---|---|---|
ARMCC_PREFIX | ツールチェーンのプレフィックスを定義します | arm-linux-gnueabihf- |
ARMCC_FLAGS | コンパイルフラグ | -march=armv7-a -mfpu=neon-vfpv4 |