ウィンドウズで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が良さげ »
「パソコン・インターネット」カテゴリの記事
- Linuxのデスクトップ環境にログインした時にxmodmapコマンド実行(2023.12.30)
- youtube-dlでrumbleをダウンロード(2023.12.06)
- Pop!_OSのアプデがfcitxを繰り返し葬る件(2023.05.22)
- vue.jsで遊んでみる(2023.01.02)
- 『将棋神やねうら王』のオープンソース版MyShogiをLinux Mint 19.1でビルドしてみた件(2019.03.24)
「Python」カテゴリの記事
- Noteの記事をPythonでバックアップしといた。(2021.05.05)
- JupyterLabでも好きな外部エディターを使いたい!(2018.05.02)
- ローカルエリア内のJupyterLabサーバーにLAN経由で接続する。(2018.05.02)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
「ディープラーニング」カテゴリの記事
- CaffeをWindows 7でcuDNN付きでビルド。(2016.07.14)
- Theano用にCUDAができるお手ごろGPUを物色中。GTX-960が良さげ(2016.03.05)
- ウィンドウズでLasagne/nolearn/Theanoで深層畳み込みニューラルネットワークしてみる(2016.02.27)
- ウィンドウズでCUDA付きでTheanoインストール!Python3.5でもできた。(2016.02.18)
- チートがバレたバイドゥの画像認識研究チームのリーダーが解雇される。(2015.06.12)
« ウィンドウズでCUDA付きでTheanoインストール!Python3.5でもできた。 | トップページ | Theano用にCUDAができるお手ごろGPUを物色中。GTX-960が良さげ »
コメント