« ウィンドウズで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」カテゴリの記事

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

コメント

コメントを書く

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

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

トラックバック

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

広告欄


広告欄

Amazon

  • ブログ記事にした商品のアフィ

    デジピはヤマハが音質・キータッチとも一番良いです。

    レビュー記事かいた程おすすめのワイヤレススピーカー。

    安いタブレットとして買い替えに最適

    速くKindle化して欲しい

やっつけタイムライン

はてブ

人目の訪問です。

  • follow us in feedly

    かなり更新が不定期なため、RSSリーダーをオススメします。RSSを表示

    当ブログは超安定なLinux Mintとシンプル&スタイリッシュなElementaryOSを応援しています。







    Jenny Mayhem
2019年1月
    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 31    
無料ブログはココログ