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