このガイドでは、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