のんびりしているエンジニアの日記

ソフトウェアなどのエンジニア的な何かを書きます。

Pylearn2のインストール(OS:Mac10.9 Marvericks)

Sponsored Links

皆さんこんにちは
お元気ですか。私は元気です。

今日はPythonを使ってDeepLearningを動かすpylearn2をインストールしてみました。なかなか手こずりました

事前準備

さて、事前にインストールしなければいけないソフトウェアが5つあります。

  • PIL
  • PyYAML
  • IPython
  • Cython
  • Theano

基本的に全てpipを利用してインストールすることができます

sudo pip install PIL PyYAML IPython Cython

但しTheanoのみ以下のコマンドを実行してください。

pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git

念のため、以下のコマンドで確認してください。

import theano

(因みにコンパイルはclangではなく、gccを使ってます)

Pylearn2

さて、pylearn2をインストール

git clone git://github.com/lisa-lab/pylearn2.git
cd pylearn2
python setup.py develop

実行

データセットの構築

gitのpylearn2で実行してください

cd pylearn2/pylearn2/scripts/tutorials/grbm_smd/
python make_dataset.py

今回はCIFAR-10 and CIFAR-100 datasetsを使ってみようと思います。
以下のような形式になるようにディレクトリを組んでもらえればと思います。
/data/lisa/data/cifar10/cifar-10-batches-py/

ちなみにディレクトリの設定ですが、以下のように設定すると確認にいきます。

export PYLEARN2_DATA_PATH=/data/lisa/data
source ~/.bashrc
source ~/.bash_profile

と実行してください。

プログラムの実行ですがなんだかよくわかりませんがgrbm_smdを動かしてみましょう。

pylearn2/pylearn2/scripts/tutorials/grbm_smd
python make_dataset.py

実行

export PATH=~/pylearn2/pylearn2/scripts:$PATH
source ~/.bashrc
source ~/.bash_profile
train.py cifar_grbm_smd.yaml

こんな感じに出れば成功です

Monitored channels:
        bias_hid_max
        bias_hid_mean
        bias_hid_min
        bias_vis_max
        bias_vis_mean
        bias_vis_min
        h_max
        h_mean
        h_min
        learning_rate
        objective
        reconstruction_error
        total_seconds_last_epoch
        training_seconds_this_epoch
Compiling accum...
graph size: 83
Compiling accum done. Time elapsed: 0.698632 seconds
Monitoring step:
        Epochs seen: 0
        Batches seen: 0
        Examples seen: 0
        bias_hid_max: -2.0
        bias_hid_mean: -2.0
        bias_hid_min: -2.0
        bias_vis_max: 0.0
        bias_vis_mean: 0.0
        bias_vis_min: 0.0
        h_max: 8.27473617422e-05
        h_mean: 1.7428911719e-05
        h_min: 9.55461232102e-06
        learning_rate: 0.1
        objective: 14.4270006967
        reconstruction_error: 70.9169792104
        total_seconds_last_epoch: 0.0
        training_seconds_this_epoch: 0.0

可視化

学習したものを可視化してみます。

export PYLEARN2_VIEWER_COMMAND="open -Wn"
source ~/.bashrc
source ~/.bash_profile

プログラムの実行は以下の通りです。
成功していると可視化画像が出てきます。

python show_weights.py cifar_grbm_smd.pkl

f:id:tereka:20141108235559p:plain

Theanoのインストールでバグる方へ

以下のようなエラーが出る人用

Exception: Compilation failed (return status=1): /Users/Tereka/.theano/compiledir_Darwin-13.1.0-x86_64-i386-64bit-i386-2.7.5-64/lazylinker_ext/mod.cpp:960:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings].  };.  ^. /Users/Tereka/.theano/compiledir_Darwin-13.1.0-x86_64-i386-64bit-i386-2.7.5-64/lazylinker_ext/mod.cpp:960:1: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]. /var/folders/gd/q82b676513d5mfmcp7lzg3zh0000gn/T//cci5H16J.s:30:no such instruction: `vcvtsi2sdq %rax, %xmm1,%xmm1'. /var/folders/gd/q82b676513d5mfmcp7lzg3zh0000gn/T//cci5H16J.s:33:no such instruction: `vcvtsi2sd %eax, %xmm2,%xmm2'. /var/folders/gd/q82b676513d5mfmcp7lzg3zh0000gn/T//cci5H16J.s:34:no such instruction: `vmovd %xmm2, %rax'. /var/folders/gd/q82b676513d5mfmcp7lzg3zh0000gn/T//cci5H16J.s:36:no such instruction: `vmovd %rax, %xmm3'. /var/folders/gd/q82b676513d5mfmcp7lzg3zh0000gn/T//cci5H16J.s:37:no such instruction: `vmovd %rdx, %xmm4'. /var/folders/gd/q82b676513d5mfmcp7lzg3zh0000gn/T//cci5H16J.s:38:no such instruction: `vdivsd %xmm4, %xmm3,%xmm0'. /var/folders/gd/q82b676513d5mfmcp7lzg3zh0000gn/T//cci5H16J.s:39:no such instruction: `vaddsd %xmm0, %xmm1,%xmm5'. 

解決策

vim ~/.theanorc #以下のように記載
[gcc]
cxxflags=-march=corei7