« ウィンドウズでCUDA付きでTheanoインストール!Python3.5でもできた。 | トップページ | Theano用にCUDAができるお手ごろGPUを物色中。GTX-960が良さげ »

2016年2月27日 (土)

ウィンドウズでLasagne/nolearn/Theanoで深層畳み込みニューラルネットワークしてみる

Lasagneの開発コアメンバーでもあり、nolearnという機械学習のPythonライブラリを作ったDaniel Nouri氏による有名なLasagne/nolearn/Theanoをつかった深層畳み込みニューラルネットワークのチュートリアルをやってみているが、インストールに苦労したので覚書。(ところで発音はダニエル・ノーリでいいのかな。モロッコ系の名前らしいが。ツイートはドイツ語と英語でくるのでドイツ人なのかな。)

Lasagne/nolearn/Theanoと、これらのライブラリの関係がややこしいが、Theanoは多次元配列の計算をMathematicaみたいにシンボリックな表記で記述して、それをCPUやGPUをつかって計算するCコードを生成するライブラリでニューロンの学習に必要な勾配の計算に特化している、LasagneはTheanoをつかってニューラルネットワークをやる時のライブラリ。nolearnはTheanoやLasagneなどをつかって深層畳み込みニューラルネットワーク学習ができるライブラリで、特にLasagneをよくサポートしている。Theanoだけでも深層畳み込みニューラルネットワーク学習はもちろんできるが、その場合数式をちゃんと書かないといけないと思うので、Lasagneを使うと楽。Lasagneはラザニアの複数形らしい。

一般的な機械学習用のScikit-learnとくらべるとTheanoはおもにニューラルネットに特化しているので、ちょっと別用途というかAPIも違って混じらない感じなのだけど、nolearn経由でLasagneを使うとScikit-learnのような感じでディープラーニングできるということらしい。

さて、最初はLinux Mint 17でチュートリアルどおりにCUDA tooklitいれてTheano/Lasagneのインストール進めて全く問題なくできたのでリナックス最高!とおもったが、(無謀にも)同じことをウィンドウズでやってみるとまずTheanoのインストールが大変だったのと、Lasagneとnolearnもバージョンも新しくないと行けないのでやっぱりハマった。あとで考えるとLinuxではチュートリアルどおりPython27で最新のCUDA toolkitいれて、Theanoはリリースの0.7でLasagneはチュートリアルのrequirement.txtにあるバージョンで、nolearnはLasagneの依存性として勝手に入ったので簡単だったが、ウィンドウズではPython27では最新のCUDA toolkitが使えない関係でPython 3.5にしたのが困難の始まりだった。

参考: ウィンドウズでCUDA付きでTheanoインストール!Python3.5でもできた。

結論から行くと

チュートリアルのコードが動いたライブラリのバージョンの組み合わせは

PythonはAnacondaのPython 3.5.1 |Continuum Analytics, Inc.| (default, Jan 29 2016, 15:01:46) [MSC v.1900 64 bit (AMD64)]上で

Theano==0.8.git

Lasagne==0.2.git

nolearn==0.6a0.dev0

だった。

インストールはふつうにTheanoをpip installすると現在は0.7のリリース版になり、Lasagneとnolearnもちょっと古いのを入れるとLasagneのインポート中にnolearnがmseというサブモジュールをインポートしようとしてエラーになる。

これはnolearnのバージョンが低いのが原因なので、最新のnolearnのインストール方法に従って新しいnolearnを入れようとするとまず、

pip install -r https://raw.githubusercontent.com/dnouri/nolearn/master/requirements.txt

で依存性パッケージいれてから、

pip install git+https://github.com/dnouri/nolearn.git@master#egg=nolearn==0.7.git

をしろとある。Linuxならこれでうまくいくのかもしれないが、ウィンドウズだと依存性パッケージのインストール中にすでに入っているscipyをビルドしようとしてエラー。

なので、requirements.txtの内容を確認して、手動でconda installしまくって依存性パッケージを入れる。condaにないLasagneは

pip install https://github.com/Lasagne/Lasagne/archive/master.zip

とすると0.2.dev1がはいる。

Theanoはgitで普通にcloneした最新ソースのmaster/HEADのままpython setup.py installすると0.8.0.dev0がインストールされた。

この状態でnolearnを入れる。

pip install git+https://github.com/dnouri/nolearn.git@master#egg=nolearn==0.7.git

すると0.7をリクエストしている割に0.6a0.dev0がインストールされたがチュートリアルのコード動いたので結果オーライ。

Linuxだとなぜかこの辺が全然問題なくチュートリアルどおりできてしまうのは、機械学習関連はやっぱり開発者もユーザーも圧倒的にLinuxが多いからだろうなぁ。

« ウィンドウズでCUDA付きでTheanoインストール!Python3.5でもできた。 | トップページ | Theano用にCUDAができるお手ごろGPUを物色中。GTX-960が良さげ »

Python」カテゴリの記事

ディープラーニング」カテゴリの記事

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1169291/64167410

この記事へのトラックバック一覧です: ウィンドウズでLasagne/nolearn/Theanoで深層畳み込みニューラルネットワークしてみる:

« ウィンドウズでCUDA付きでTheanoインストール!Python3.5でもできた。 | トップページ | Theano用にCUDAができるお手ごろGPUを物色中。GTX-960が良さげ »

広告欄


やっつけタイムライン

広告欄

はてブ

人目の訪問です。

  • follow us in feedly

    かなり更新が不定期なため、RSSリーダーをオススメします。現在Feedlyに122人登録頂いています。多謝!RSSを表示

    ブログランキング用 にほんブログ村 IT技術ブログ Pythonへ ブログランキングならblogram






    Jenny Mayhem
2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

IT技術注目記事

無料ブログはココログ