Raspberry Pi のソースからのビルド

このガイドでは、Raspbian 9.0 を搭載する Raspberry Pi デバイス用の TensorFlow パッケージをビルドします。この手順は Raspberry Pi の他のバリエーションでも機能する可能性がありますが、テスト済みかつサポートされているのは上記の構成のみとなります。

TensorFlow の Raspbian パッケージはクロスコンパイルすることをおすすめします。クロスコンパイルとは、デプロイ先とは異なるプラットフォームを使ってパッケージをビルドすることです。Raspberry Pi の限られた RAM や比較的遅いプロセッサを使用する代わりに、Linux、macOS、または Windows を搭載したもっと強力なホストマシン上で TensorFlow をビルドするほうが簡単です。

ホストのセットアップ

Docker のインストール

依存関係の管理を簡略化するために、ビルド スクリプトは Docker を使ってコンパイル用の Linux 仮想開発環境を作成します。docker run --rm hello-world を実行して、Docker のインストールを検証してください。

TensorFlow のソースコードをダウンロードする

Git を使用して TensorFlow のリポジトリのクローンを作成します。

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow

リポジトリのデフォルトは master 開発ブランチです。リリース ブランチをチェックアウトしてビルドすることもできます。

git checkout branch_name  # r1.9, r1.10, etc.

ソースからのビルド

TensorFlow のソースコードをクロスコンパイルして、Raspberry Pi 2、3 および 4 のデバイスで機能する ARMv7 NEON 命令を含んだ Python pip パッケージをビルドします。ビルド スクリプトはコンパイル用の Docker コンテナを起動します。また、「build_rapsberry_pi.sh」スクリプトに「AARCH64」パラメータを指定することで、ARM 64 ビットバイナリ(aarch64)をビルドすることもできます。ターゲット パッケージとして、Python 3.8、Python 3.7、Python 3.5、Python 2.7 の中から選択してください。

Python 3.5

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON3 \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh

Python 3.7

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON37 \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh

Python 3.8(64 ビット)

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON38 \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh AARCH64

Python 2.7

tensorflow/tools/ci_build/ci_build.sh PI \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh

Pi 1 と Pi 0 を含むすべての Raspberry Pi デバイスに対応するパッケージをビルドするには、PI_ONE 引数を、たとえば次のように渡します。

tensorflow/tools/ci_build/ci_build.sh PI \
    tensorflow/tools/ci_build/pi/build_raspberry_pi.sh PI_ONE

ビルドが完了する(約 30 分)と、.whl パッケージ ファイルがホストのソースツリーの出力アーティファクト用ディレクトリに作成されます。wheel ファイルを Raspberry Pi にコピーし、pip でインストールします。

pip install tensorflow-version-cp35-none-linux_armv7l.whl