読者です 読者をやめる 読者になる 読者になる

Macでディープラーニングのパッケージをひたすらインストールし続ける

電波 Apple関係 人工知能

ディープラーニングを今年度こそ学習する

 興味はあったものの、去年度はパッケージをインストールしただけで力尽きて何もできなかったディープラーイング、今年こそは学習したいと思います。ちなみに、仕事で使うというわけではありません、なんとなく面白そうだなと思っているだけです。趣味を聞かれたら「ディープラーニング」と答えられるくらいには、ディープラーニングを理解して色々試してみたいなと思っています。
 というわけで、パッケージを入れるので力尽きないよう今年度は最初にしっかり環境構築をして、ディープラーニング自体の理解や、色々なトライアルに時間を割いて、もりもり学習進めていきたいなと思っています。ディープラーニングだけに。

 ディープラーニングといえば、プログラム言語はpython。というわけで、python環境は、下記記事の通り準備万端です。あとは代表的なパッケージをインストールしていきます。

 これ以降は上記記事のセットアップが完了している前提で説明していきます。基本ネットの情報を元にそのままやっているだけですが、一部そのままでは自分の環境ではうまくいかなかったので変えたり、自分流にアレンジしているところもあります。参考にしたサイトは、記事末尾の参考リンクのところに載っけておきますので、もしこの記事の通りやってもうまくいかない人はそちらも見てみるとよいかもしれません。そもそも、私の記事を参考にしない方がよいのかもしれません。

 当然ながら、この後はディープラーニングに興味ない人にとっては、完全に宇宙語が続くので興味がある方のみご覧いただくことをオススメします。

ディープラーニングのパッケージ

 代表的かつ、インストールしやすい以下のパッケージをインストールしました。

  • chainer
  • tensorflow
  • theano + keras

 あとはcaffeも入れたかったのですが、私の環境だと途中で詰まってしまいました。caffeは結構色々な例があって楽しげですが、インストールばかりに時間使うのはあまり本質でもないので今回は見送りました。あとは、Raspberry Pi + caffeでDeep Dreamやって満足したということもあります。あのときは、インストールがかなり辛くて若干トラウマになっています。

 このときはインストールが地獄でした…

 caffeどうしても入れたいという人は参考サイトとか見てみるとよいと思います。

chainer

 PFN(Preferred Networks)社の国産のディープラーニングのフレームワーク。PFNはファナックやトヨタと組んだりしていて、今この分野で一番勢いがある国内の会社ですね。会社のブログでもかなり有用な情報を公開しています。しゅごい。

Preferred Research

chainer用の仮想環境生成

 以下のコマンドでpython2.x系の環境(anaconda-2.4.0)に切り替え

$ pyenv global anaconda-2.4.0

 仮想環境chainer生成

$ conda create -n chainer python

 仮想環境chainerに切り替え

$ pyenv global anaconda-2.4.0/envs/chainer

 ここまでで環境構築完了。以下実行して確認。

$ pyenv versions

 以下のようになっていたらOK

  system
  2.7.11
  anaconda-2.4.0
* anaconda-2.4.0/envs/chainer

chainer インストール

 Macだと基本以下のみで完了。楽チン。

$ pip install chainer

 参考までに、少し前にLinux(Ubuntu14.04)でchainer入れようとしたら色々ライブラリのインストールが必要でした。コマンドにすると以下くらい実行して待ち続ける必要があります。今はまた変わっているかもしれませんが…

$ sudo apt-get update
$ sudo apt-get install python-pip python-dev
$ sudo pip install cython
$ sudo apt-get install libhdf5-dev
$ sudo pip install chainer

Raspberry Piへのchainerインストール(2016/07/02追記)

 Raspberry PiにもUbuntuと同じ要領で下記コマンド打ち込んだらchainerインストールできました。pyenv + virtualpyenvは無し、Raspberry Pi 3 + Raspbian Jessieでテストしました。

$ sudo apt-get update
$ sudo apt-get install python-pip python-dev
$ sudo pip install cython
$ sudo apt-get install libhdf5-dev
$ sudo pip install chainer

chainer テスト

 以前インストールしたときも試した、MNISTのテスト。
 仮想環境chainerに切り替え

$ pyenv global anaconda-2.4.0/envs/chainer

 chainerのリポジトリをgit clone(ダウンロード)

$ git clone https://github.com/pfnet/chainer.git

 サンプルを実行

$ python chainer/examples/mnist/train_mnist.py

 以下のように実行結果が出力されます。

GPU: -1
# unit: 1000
# Minibatch-size: 100
# epoch: 20
Network type: simple

load MNIST dataset
Downloading train-images-idx3-ubyte.gz...
Done
Downloading train-labels-idx1-ubyte.gz...
Done
Downloading t10k-images-idx3-ubyte.gz...
Done
Downloading t10k-labels-idx1-ubyte.gz...
Done
Converting training data...
Done
Converting test data...
Done
Save output...
Done
Convert completed
epoch 1
graph generated
train mean loss=0.192114913904, accuracy=0.941716670543, throughput=2164.78915958 images/sec
test  mean loss=0.1126654516, accuracy=0.964200003147
epoch 2
train mean loss=0.0749118167783, accuracy=0.976266677082, throughput=2299.87186756 images/sec
test  mean loss=0.0879497602012, accuracy=0.972200007439
epoch 3
train mean loss=0.047495209059, accuracy=0.984833344022, throughput=2211.14154271 images/sec
test  mean loss=0.0716102248886, accuracy=0.978400006294
epoch 4
train mean loss=0.0367159996387, accuracy=0.987916675707, throughput=2190.24258468 images/sec
test  mean loss=0.0707393590377, accuracy=0.979500007033
epoch 5
train mean loss=0.0298563094352, accuracy=0.990383341114, throughput=1837.79638508 images/sec
test  mean loss=0.0732800422167, accuracy=0.979500008225
epoch 6

 ふむふむ、わからん。

tensorflow

 ご存知googleのディープラーニングのフレームワーク。

tensorflow用の仮想環境生成

 python2.x系の環境(anaconda-2.4.0)に切り替え

$ pyenv global anaconda-2.4.0

 仮想環境tensorflow生成

$ conda create -n tensorflow python

 仮想環境tensorflowに切り替え

$ pyenv global anaconda-2.4.0/envs/tensorflow

tensorflow インストール

 以下のみで完了。楽チン。

$ pip install --upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.7.1-cp27-none-any.whl

 常にバージョンアップしているので、最新のバージョンは以下の公式サイトで確認して適宜修正ください。 https://www.tensorflow.org/versions/master/get_started/os_setup.html

theano + keras

 ディープラーニングの中では、古めのフレームワーク。最近よくみている人工知能に関する断創録というブログの下記記事でオススメされていたので、とりあえず入れておきました。インストールも簡単でした。

theano用の仮想環境生成

 python2.x系の環境(anaconda-2.4.0)に切り替え

$ pyenv global anaconda-2.4.0

 仮想環境theano生成

$ conda create -n theano python

 仮想環境theanoに切り替え

$ pyenv global anaconda-2.4.0/envs/theano 

 python起動して、以下の通りtheanoインポートしてエラーがでなければ成功

>>> import theano
$ pip install keras

まとめ

 これで一通りインストールできました。後はもりもり色々なことを試していきたいと思います。まずは、先人の知恵を色々キャッチアップしてから、今年中に少しでもオリジナリティを出せればと思っています。この分野の専門家ではないので、すぐに何か凄いことをするのは難しそうですが、自分なりに地道にやっていって、何か得られればよいなというくらいの気長な気持ちでいきたいと思います。
 この分野は、技術に精通しているのももちろんですが、どのようなアプリケーションに適用するかがかなり重要に見えるので、自分ならではの組み合わせを見つけられれば価値はあるのじゃないかなと思っています。

 とりあえず下記の本買ったので、読み進めています。

イラストで学ぶ ディープラーニング (KS情報科学専門書)

イラストで学ぶ ディープラーニング (KS情報科学専門書)

 ただ途中少し読んだ時点で、数式がずらずら出てきてワケワカメなので既に挫折しそうです。誰か優しく私にディープラーニング教えてください!

関連記事

参考リンク

ディープラーニングの有名ライブラリ5種を最短距離で試す半日コース(TensorFlow, Chainer, Caffe, DeepDream, 画風変換) - Over&Out その後

Chainerをインストールしてみる - そこに部品があるから