たけし備忘録

自分の好奇心の赴くままに勉強メモ LL系が大好き Python bash Julia C

深層学習ライブラリ Chainerインストール時にメモリがいっぱいいっぱい Theanoもついでにインストール

昨日今日と引き続いてTheanoとChainerをpipからインストールしようとしたのですがどうにもインストール出来ない。
特にChainerなんてメモリが99%まで埋め尽くされてフリーズする。こいつぁひどい。

私の環境はそもそも

Windows7(64bit)
(※お金が無いのでGPUは載せてません。)
Python2.7.10

の下で
Cythonは最新, C++コンパイラ(g++)もある、pathも通ってる、pipも最新にした。
いったい何がおかしいんだってことでいろいろと原因を探ってみたところとても恥ずかしいミスを発見。
MinGWが32bit版でした。

MinGWWindows環境ではド定番で入れるコンパイラ群。プログラムやりたてホカホカの右も左も分からない時に入れたので32bit入れちゃったんだなぁきっと。
ということで
MinGW-w64 - for 32 and 64 bit Windows download | SourceForge.net
こちらからMinGW64bit版のインストーラを落としましてインストールしました。
MinGW32bit版と違ってC:直下ではなくC:\Program Files\mingw-w64 に配置されてました。
このままではpathが通ってなかったので、ここにpathを通します。

周知ではあるけども、pathの優先順位は先頭にあるものから優先して呼びだされます。
whereコマンドで where g++ と打ってみるとg++コンパイラのpathが通ってる全てのpathが表示されます。
whichコマンドで which g++ で最優先されるg++コンパイラのpathが表示されます。

MinGW32bit版は消したくなかったので、MinGW64bitのbinのディレクトリにだけpathを通してコンパイラ群だけ最優先(PATHの先頭に入れただけ)にさせました。

とりあえず全てを終えて、再度Theanoをインストール!
pip install theano → 成功!

安心できないぞ!importを終えてから安心するんだ!
import theano → 成功

いやまだだ!chainerのインストールが私の目的だったはずだ!
pip install chainer → 成功

Theano依存の最近ちょこちょこ名前の上がってるKerasも
pip install keras → 成功
これはtheano入ってなくてもg++が32bitでも出来たけどサンプルコードが動かなかった。
ということでKerasサンプルコードもg++を64bitにしたら成功しました。

ということでchainerをpipでインストールして(ソースからコンパイルするときも同じく)メモリが異常にいっぱいになってしまう方はぜひともC++コンパイラのバージョンをご確認下さいませ。
Chainerは悪く無かった。ごめんよChainer。悪口言ってゴメンネChainer。
お見苦しい文章ですがこんな感じで解決しました。