TensorFlow LitePythonホイールパッケージをビルドする

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

次の手順は、Ubuntu 16.04.3 64ビットPC(AMD64)、macOS Catalina(x86_64)、およびTensorFlow develDockerイメージtensorflow / tensorflow:develでテストされています。

前提条件

CMakeをインストールし、TensorFlowソースコードのコピーをインストールする必要があります。詳細については、 CMakeを使用したTensorFlowLiteのビルドページを確認してください。

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

目標ターゲットアーキテクチャコメントコメント
armhfネオンを備えたARMv7VFP Raspberry Pi3および4と互換性があります
rpi0 ARMv6 Raspberry PiZeroと互換性があります
aarch64 aarch64(ARM 64ビット)コーラルメンデルLinux4.0
Ubuntu Server 20.04.01 LTS64ビットを搭載したRaspberryPi
ネイティブワークステーション「-mnative」最適化で構築されます
ワークステーションデフォルトのターゲット

ビルド例

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

Python3.7のarmhfターゲット

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

Python3.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