TensorFlowを応用して、何か面白いことをやってみたい!と思っていませんか?
私は、カメラで撮影したものを認識するタスクが面白そうだと思っています。
試しに「TensorFlow カメラ」で検索すると、MacBook Air、MacBook Pro、Raspberry Piなどのデバイスを利用した記事が見つかります。
そこで今回は、一番大変そうなRaspberry PiにTensorFlowをインストールする方法をまとめてみました。
Raspberry Piをお持ちの方は、ぜひ一度TensorFlowをインストールしてみてください!
Raspberry Piをお持ちでない方は、Raspberry Piの購入とTensorFlowのインストールを検討しては、いかがでしょうか!
Raspberry Piとは
Raspberry Piは、ラズベリーパイ財団が発売しているコンピュータです。
参考:https://www.raspberrypi.org/
日本国内で購入する場合は、株式会社ケイエスワイから購入する人が多そうです。
※上記画面の右下で「Raspberry Pi 3 Model B+」が発表されたことが紹介されていますね!
参考:https://raspberry-pi.ksyic.com/main/index
Raspberry Piと、一般的にイメージできるパソコンとの違いを整理してみましょう。
Raspberry Pi | パソコン | |
---|---|---|
カバー(ケース) | なし むき出しの基板の上に、必要な部品がついています | あり ケースの中に部品が入っています |
大きさ・価格 | とても小さく安価 Raspberry Pi 3は、5,000円程度です | 大きく高価 売れ筋は、50,000円程度です |
主なストレージ | microSDカード 必要ならUSB HDDなども接続できます | SSDまたはHDD |
OS | Linux | WindowsまたはMacOS もちろんLinuxもあります |
話題のIoTデバイスとしてRaspberry Piを使用する人が多いと思いますが、これから説明するとおり、TensorFlowも動作するので、学習結果を利用してちょっと面白いこともできます。
TensorFlowとは
TensorFlowは、機械学習や深層学習のプログラムを実装する際に使用できるライブラリです。
TensorFlowとは何か?については、以下の記事で説明していますので、よく分からない方は確認してみてくださいね。
Raspberry Piへのインストール方法3選
それでは、TensorFlowをRaspberry Piへインストールしていきましょう!
次の手順に従って操作してください!と言いたいところですが、実は主なインストール方法が3つあります。
いずれも一長一短がありますので、目的に合わせてインストール方法を選んでください。
Sam Abrahams氏のビルドを利用する
日本語のブログ記事では、最も紹介記事が多い方法ですが、バージョンが古いので今はお勧めできません。
Sam Abrahams氏がビルドしたTensorFlow 1.1.0が、GitHubにアップロードされています。
参考:https://github.com/samjabrahams/tensorflow-on-raspberry-pi
README.mdの「Installing from Pip」の手順を参考に進めると良いでしょう。
日本語で操作を書いてくれている記事もいくつもあります。
参考:https://qiita.com/mgr206/items/9fc0de88ff9547372cac
このビルドでは、注意しなければいけない点が2つあります。
1つ目は、公式のTensorFlowのソースコードを、少し修正してからビルドしたという点です。
したがって、何か問題が発生したとしても、公式のTensorFlowチームのサポートを期待してはいけません。
2つ目は、バージョンが1.1.0と古いことです。
2018年3月現在では、次に説明するNightlyビルドを利用する方法であれば、1.7.0rc1をインストールできますので、そちらの方がお勧めです。
Pete Warden氏のブログで紹介されているNightlyビルドを利用する
次に紹介するのは、Nightlyビルドを使用する方法です。
TensorFlowをビルドするのは準備も大変ですし、準備ができてもビルドの時間も思ったよりかかるので大変です。
それを解決するために、毎日Nightlyビルドが自動的に公開される仕組みが作られました。
参考:https://petewarden.com/2017/08/20/cross-compiling-tensorflow-for-the-raspberry-pi/
このNightlyビルドを使用して、Raspberry PiにTensorFlowをインストールする詳しい手順については、リンク先のブログ記事(英文)を読む必要があります。
ブログ記事にも書かれていますが、サポートするPythonのバージョンであったり、Raspberry Piのバージョンによって、whlファイルの名前が異なります。
ここでは、Raspberry Pi 3でPython 2.7をサポートする場合の手順を例にざっくり説明しておきますね。
(1)whlファイルのURLを確認します。
Raspberry Pi 3(たぶん2も)でPython 2.7をサポートするには、以下のページにアクセスして、赤枠に書かれているファイル名のURLを確認します。
以下の画面では「tensorflow-x.x.xxxx-cp27-none-any.whl」ですね。
「x.x.xxxx」の部分はTensorFlowのバージョンで、「1.4.0」とか「1.7.0rc1」が入ります。
参考:http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/
(2)「tensorflow-x.x.xxxx-cp27-none-any.whl」を右クリックし、「リンクのアドレスをコピー」(Chromeの場合)をクリックします。
whlファイルのURLがクリップボードにコピーされました。
メモ帳などに貼り付けると、whlファイルのURLが確認できます。
[code]
http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/tensorflow-x.x.xxxx-cp27-none-any.whl
[/code]
(3)Pete Warden氏のブログ記事に従って、確認したwhlファイルをインストールする
Python 2.7をサポートする場合、Python 3.4をサポートする場合、Python 3.5をサポートする場合で、すべて手順が異なります。
Raspberry PiのバージョンとPythonのバージョン
Raspberry PiのバージョンとPythonのバージョンで、whlファイルのURLを確認するページが異なりますので、整理しておきます。
Raspberry Pi 3(たぶん2も)+Python 2.7:
http://ci.tensorflow.org/view/Nightly/job/nightly-pi/lastSuccessfulBuild/artifact/output-artifacts/
Raspberry Pi 3(たぶん2も)+Python 3.4、3.5:
http://ci.tensorflow.org/view/Nightly/job/nightly-pi-python3/lastSuccessfulBuild/artifact/output-artifacts/
Raspberry Pi ZeroまたはRaspberry Pi 1+Python 2.7:
http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/lastSuccessfulBuild/artifact/output-artifacts/
Raspberry Pi ZeroまたはRaspberry Pi 1+Python 3.4、3.5:
http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero-python3/lastSuccessfulBuild/artifact/output-artifacts/
TensorFlowの古いバージョンをインストールする
TensorFlowの古いバージョンもダウンロードできます。
ここでは、Raspberry Pi 3(たぶん2も)+Python 2.7について、どのバージョンがいつビルドされているかを調べてみました。
TensorFlow 1.7.0rc1(2018/3/29):
http://ci.tensorflow.org/view/Nightly/job/nightly-pi/230/
TensorFlow 1.6.0(2018/3/22):
http://ci.tensorflow.org/view/Nightly/job/nightly-pi/223/
TensorFlow 1.5.0(2018/2/3):
http://ci.tensorflow.org/view/Nightly/job/nightly-pi/176/
TensorFlow 1.4.0(2017/12/31):
http://ci.tensorflow.org/view/Nightly/job/nightly-pi/142/
TensorFlow 1.3.0(2017/10/10):
http://ci.tensorflow.org/view/Nightly/job/nightly-pi/63/
ここに記載したURLにアクセスすると、そのときのNightlyビルドのURLを調べられます。
この他の組み合わせの場合は、以下のURLから同じ日付のビルドを探せば、同じバージョンをインストールできますので、TensorFlowのバージョンにコダワリがある場合は、このURLを参考にしてくださいね。
Raspberry Pi 3(たぶん2も)+Python 2.7:
http://ci.tensorflow.org/view/Nightly/job/nightly-pi/buildTimeTrend
Raspberry Pi 3(たぶん2も)+Python 3.4、3.5:
http://ci.tensorflow.org/view/Nightly/job/nightly-pi-python3/buildTimeTrend
Raspberry Pi ZeroまたはRaspberry Pi 1+Python 2.7:
http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero/buildTimeTrend
Raspberry Pi ZeroまたはRaspberry Pi 1+Python 3.4、3.5:
http://ci.tensorflow.org/view/Nightly/job/nightly-pi-zero-python3/buildTimeTrend
ソースコードからビルドする
最後に紹介するのは、公式のTensorFlowのソースコードからビルドする方法です。
参考:https://www.tensorflow.org/install/source_rpi
TensorFlowの公式サイトでRaspberry Piへのインストール方法が解説されています。
日本語で記事を書いてくださっている方もいらっしゃいますので、こちらも参考になるでしょう。
まとめ
今回は、Raspberry PiにTensorFlowをインストールする方法を3つ紹介しました。
今回はインストール記事を書きましたが、Raspberry PiにTensorFlowをインストールすることが目的ではなく、Raspberry PiにインストールしたTensorFlowで何をするのか!が本題です。
この記事を参考に、TensorFlowのインストールはサッと終わらせて、本題に時間を掛けて取り組んでください。
何かいいプロダクトができたら、ぜひ教えてください。
私も試してみたいと思います!