MacbookにPylearn2をインストールする
最終更新 2014/07/23
この記事では、Deep Learningの実装の一つ、Pylearn2を、Macbookにインストールする手順を、インストールガイドに書かれていない詳細も含めて解説します。
ライブラリの特徴
Theano
http://deeplearning.net/software/theano/
Pylearn2
http://deeplearning.net/software/pylearn2/
Theanoの長所
- Pythonの算術ライブラリ
- 文字式構築 + 数値演算
- テンソル利用可能 (ニューラルネットの記述に有効)
- 自動微分機能 (ニューラルネットのアルゴリズム上、微分計算は重要)
- 数値演算の自動GPU並列化 (数十倍の実行速度)
- 数式 / 計算木 / 計算順序の自動最適化 特に計算誤差の防止
- numpyとの親和性が高い
Pylearn2の長所
-
- Python+Theano上で記述された、Deep Learningのライブラリ
- Deep Learningのアルゴリズム”maxout”が完全な形で実装されている
(maxoutは2013年時点の画像認識state of the artの一つ)
共通の長所
- 公開コードである
- 開発コミュニティが非常に活発であり、forumでのサポートも見込める
共通の短所
- 開発版としての性格が強く、コードがやや不安定 (特にPylearn2)
- 内部コードの解読はそれなりにハードルが高い
なお、TheanoとPylearn2は、どちらもDeep Learningの第一人者であるBengioの研究室を中心に開発されています。
インストールの前に
もし使えるならば、Linuxサーバ上で動かした方が簡単です。
また、多くのMacbookはGPUを搭載していないため、実行できないサンプルコードもあります。
インストール方法
1. インストール
2. データセットの準備
3. 環境変数の設定
1. インストール
「Pylearn2のMaxout Networkを、手元のMacbookで動かす」ことを目標に、解説します。
(LinuxとWindowsは、この記事の対象外です。)
1.1 インストール手順
・ TheanoとPylearn2の依存パッケージをインストール
Pythonは2.7を使ってください。
これは、主にPylearn2、PILとの相性問題によります。
先に、Theanoが内部的に使うライブラリパッケージを、Homebrewやpipでインストールします。
(Homebrewやpipの解説は割愛します)
下記URLのRequirementsに従います。
Theano 0.6 documentation > Installing Theano
OSXの場合BLASは元々入っているので、スキップして大丈夫です。
また、GPUを積んでいないマシンでは、一部GPU関連のライブラリがインストールできない可能性があります。
その場合でも、Pylearn2やTheanoのGPUに依存しない部分は動きます。
なお、ここが非常に大切かつ気づきにくいのですが、
OSXプリインストールの/usr/bin/gccは、CUDAと相性が悪いです。
このファイルは、名前がgccなのに、中身がapple製コンパイラのclangになっています。
(–versionするとわかります)
CUDAはgccしか使えず、clangだとオプションの食い違いなどでエラーを起こしてしまいます。
環境に応じた適切な方法で、GCC 4.8をインストールして、利用優先度を上げてください。
例えば私の場合、
brew install gcc48
ln -s /usr/local/bin/gcc-4.8 /usr/local/bin/gcc
のようにして、gccをclangより優先して使うようにしました。
次に、Pylearn2側の依存パッケージもインストールします。
Pylearn2 dev documentation > Dependencies
になどに従って、以下の4つ
- PIL
- PyYAML
- IPython
- Cython
をインストールしてください。
(Cythonは明記されていませんが、一部モジュールの利用に必要となります)
例えばPyYAMLをpip経由でインストールする場合、
pip install PyYAML
となります。
1.2 bleeding-edge versionのTheanoをインストール
ここまでくれば、恐らく問題なくTheanoをインストールできると思います。
Bleeding-edge install instructionsを参考に、インストールしましょう。
pip install --upgrade --no-deps git+git://github.com/Theano/Theano.git
1.3 Pylearn2をインストール
Download and installation
の通りですが、例えば
mkdir ~/git
cd ~/git
git clone git://github.com/lisa-lab/pylearn2.git
python setup.py develop
のようにするとよいでしょう。
1.4 既知の問題
環境によっては、
xcode-select --install
によって、システム標準のコマンドラインツールを入れる必要があるかもしれません。(未検証)
pipでパッケージのコンパイルが失敗する場合、一度uninstallすると動く場合があります。
また、–upgradeが効くこともあります。
pip uninstall <package-name>
pip install --upgrade <package-name>
matplotlibがpipでinstall出来ない場合、brew経由だと成功する場合もあります。(要tap)
brew search matplotlib
brew tap homebrew/python
brew install matplotlib
筆者の環境では、なぜかscipyがコンパイルできなかったので、
pip install -e 'git+https://github.com/scipy/scipy#egg=scipy-dev'
を使いました。
2. データセットの準備
画像識別データセットのMNISTとCIFAR10をダウンロードします。
2.1 データ置き場の準備
データ置き場として利用するフォルダを1つ、好きな場所に作成します。
ここでは、仮に”~/pylearn2_data” としておきます。
さらに、”mnist”フォルダと”cifar10″フォルダを作ります。
mkdir ~/pylearn2_data
cd ~/pylearn2_data
mkdir mnist cifar10
2.2 MNISTの準備
MNISTは、手書き数字認識のデータセットです。
THE MNIST DATABASE of handwritten digits
より、
- train-images-idx3-ubyte.gz: training set images (9912422 bytes)
- train-labels-idx1-ubyte.gz: training set labels (28881 bytes)
- t10k-images-idx3-ubyte.gz: test set images (1648877 bytes)
- t10k-labels-idx1-ubyte.gz: test set labels (4542 bytes)
の4つ全てをダウンロードしてください。
ダウンロードしたデータを展開し、 “~/pylearn2_data/mnist” に入れて下さい。
2.3 CIFAR10の準備
CIFAR10は、カラー写真認識のデータセットです。
The CIFAR-10 dataset
より、
CIFAR-10 python version
をダウンロードしてください。
同じくダウンロードしたデータを展開し、”~/pylearn2_data/cifar10″ に入れて下さい。
最終的に
~/pylearn2_data/mnist/t10k-images-idx3-ubyte
~/pylearn2_data/cifar10/cifar-10-batches-py/data_batch_1
が出来てればOKです。
3. 環境変数の設定
Pylearn2とシステムをつなぐため、環境変数を設定します。
一般的には.bashrcなどに書き込むことになります。設定方法の詳細は割愛します。
3.1 データセットフォルダの指定
Pylearn2に、2.で作ったデータフォルダの場所を教えます。
cf.) Pylearn2 dev documentation > Data path
export PYLEARN2_DATA_PATH=~/pylearn2_data
3.2 画像閲覧用プログラムの設定
一部スクリプトで使われる、画像閲覧用プログラムを設定します。
Macでは、openコマンドを通してPreviewを起動するのが良いでしょう。
export PYLEARN2_VIEWER_COMMAND="open -Wn"
3.3 パスを通す
Pylearn2に含まれる、学習実行スクリプトにパスを通します。
スクリプトは全て、 “pylearn2/pylearn2/scripts” フォルダに入っています。
Pylearn2のチュートリアルページは、ここにパスが通っていることが前提で書かれています。
仮に “~/pylearn2/pylearn2/scripts” にフォルダがあったとすると、
export PATH=~/pylearn2/pylearn2/scripts:$PATH
としておくのが最も簡単だと思います。
ここまでで環境構築は完了です。
4. インストール完了
この後は、実際にDeep Learningのアルゴリズムを動かしてみることになります。
第6回AIツール入門講座資料
を参考に進めるのがよいと思われます。
(この記事で行ったのは、講座資料でいう「環境構築」の部分にあたります)
また、DeepLearningのアルゴリズムをより深く理解したい場合、
Deep Learning Tutorialsでは、
Deep Learningのアルゴリズムの基礎が、Theanoで実装されています。
実装の詳細を追う場合は、はじめに読むと理解が早いです。