mikemoke blog

ビジネスに関心があるデータサイエンティスト。データ解析・ビジネス・エンジニアリングについての知見を纏めています。

pylearnの環境設定・実行 (ついでにscikit_learn設定

scikit_learn は numpyとscipyに依存しており、

pyleranは上記に加えてTheano,PyYAML,PIL(Image?)をインストールする

 

pythonについては過去記事で設定している前提で

http://mikemoke.hatenablog.com/entry/2014/03/02/203524

 

・numpyインストール 

numpyインストールしようとするもvcvarsall.bat見つからないとエラー

⇒.Net4.x は python 2.xが求めるvcvarsallが無いとか。(python3.x向けはある)

以下参照してWindows SDKをインストール& python2.x用vcvarsall.batを用意

http://draftcode.github.io/2013/03/17/5f45fabb-8b64-469e-a0f6-7f9d76564af8.html

そしてnumpyインストール

※コマンド"pip install numpy"

 

・SciPyインストール 

SciPyインストールしようとするもこちらもエラー

fortranコンパイラをインストールして云々する方法と、コンパイル済みのものを取得する方法が示されている(参考:http://stackoverflow.com/questions/12628164/trouble-installing-scipy-on-windows

楽そうなので、コンパイル済みのパッケージをインストールする

(参考:http://sourceforge.net/projects/scipy/files/scipy/0.11.0/

※ここではscipy-0.11.0-win32-superpack-python2.7を実行

 

・scikit-learn インストール

pipコマンド実行 "pip install scikit-learn"

 

・Theano インストール

pipコマンド実行 "pip install Theano"

 

.・PyYAMLインストール

pipコマンド実行 "pip install PyYAML"

 

.・PILインストール

easy_installコマンド実行 "easy_install PIL"

※pipではインストールできなかったが、理由を調べるのが面倒なので放置

 

 

この状態でPylearn2を実行してみる

(参考:http://goods-tmu.blogspot.jp/2013/07/theanodeeplearning.html

チュートリアルをダウンロード(https://github.com/lisa-lab/DeepLearningTutorials

DeepLearningTutorials-master\code\SdA.pyを実行する(python SdA.py)

 

この状態でPylearnを実行すると二つエラー・警告が出る

①No module named PIL.Image 

②WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded

 

①について

http://stackoverflow.com/questions/8863917/importerror-no-module-named-pil

PILライブラリではなく、Imageライブラリが必要らしい。ということでインストール

※コマンド実行"easy_install Image"

 

②について 

おそらくTheano実行しようとするとg++ compilerないとか怒られる

mingwをインストール 

http://symfoware.blog68.fc2.com/blog-entry-797.html

mingw32-baseとmingw32-gcc-g++をインストール

これで警告がでなくなる

 

 

GPUなしで実行してみたところ、1週間程度では終わらなさそうでした。

DeepLearningするならGPGPUが必須ですかね・・・