RaspberrypiでもKerasで深層学習したい!

研究でRaspberryPi内に深層学習を簡単に行えるKerasをインストールすることになりました

KerasはバックグラウンドにTensorFlowを入れる必要がありますが以前にpipで簡単に入ることを聞いていたので余裕だと思っていましたがいろいろと罠がありました

なんとか入れることができたので導入の仕方と躓いたところを書いておきます

はじめに

導入の基本的な仕方はTensorFlowの公式に沿って行います

そのため、仮想環境(virtualenv)のなかで構築を行っていきます

公式の導入方法

導入環境

  • Raspberrypi 3
  • Python 3.5.3

アップデートと仮想環境の構築

rasbianをインストールしてからはじめにやる儀式と仮想環境を作っていきます

まずはupdate等をしてパッケージを最新にします

アップデートしたら再起動をかけて落ち着きます

つぎにpythonなどをインストールします

libatlas-base-devをインストールしないとnumpyを使うときにエラーがでるので導入しておきます

仮想環境の作成

TensorFlow・Kerasを動かすための仮想環境(virtualenv)を作っていきます

virtualenvの使い方は以下のサイトが良いと思います

virtualenvはPythonの仮想的な環境を作ることができるパッケージ。 プロジェクトごとにPythonのバージョンを変えたり、必要なパッケージを分けてインストールして動かす事ができるようになります。 ##インストール ##...

TensorFlow・Kerasの導入

ついにTensorFlowとKerasを入れていきます

TensorFlowの導入については公式とは異なる入れ方をします(理由は後述の躓いた点にて)

あとはPythonを起動してkerasをインポートしてあげてエラーがでなければおkです

躓いた点

  1. TensorFlowの導入
    公式の方法だと以下のように入れています

    しかしこれを導入後、Kerasをインストールしインポートすると以下のエラーがでます

    ネットで検索すると結構問題になっているようです
    どうやらtensorflowのプログラムの一部がpython3.4用でpython3.5では動かないかもというエラーのようです

    そのため、TensorFlowのバージョンは最新ではありませんが、arm版でビルドしているものをインストールしました

    TensorFlow for Arm. Contribute to lhelontra/tensorflow-on-arm development by creating an account on GitHub.

    ※現時点(2018/11/27)では、1.11.0が最新でした

  2. python3.6にしてからTensorFlowの導入
    RaspberryPiは2.7と3.5がデフォルトではいっています
    個人的には3.5は古い印象があったのでpython3.6でインストールしようとやっていましたが罠がありました罠というのはKerasを動かすのに必要なScipyとh5pyのインストールです
    めっちゃくちゃ時間かかります
    回避方法として”apt-get”で入れる方法もありましたが、仮想環境では認識してくれず、結局scipyとh5pyのインストールをしてしまいます
    時間をかければ3.6でもTensorFlow・Kerasの環境構築ができますが、今回は見送りました
  3. module compiled against API version 0xc but this version of numpy is 0xa の回避

  4. pipがサポートしている.whlを調べる方法
    TensorFlowを入れるために.whlにて導入しています
    これはどれでもいいわけではなく、pipがサポートしているものにものをインストールしなければなりません
    pythonを起動し以下のコマンドを打つと対応しているwhlを確認することができます

参考文献

スポンサーリンク