TensorFlow Lite Python Wheel パッケージを構築する

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