Amazon EC2 上に Pylearn2 環境を構築する
最近 pylearn2
や theano
を使って Deep Learning を少しずつ勉強しているのだが、いろいろと試す場合には処理時間が結構ネックになる。とくに画像処理をしたい場合には GPU 計算ができないとちょっと現実的でない。
とはいえ、そこそこの PC + GPU を買おうと思うとけっこういいお値段するし、PC を自分で維持・メンテするのもめんどくさい。少し考えた結果、EC2 上に環境を構築することにした。何度かやってみてうまくいくようになったので、手順をまとめておく。
補足 善意の方がつくった pylearn2
プリインストール済みの AMI もいくつか公開されているので、 気にならない方はそっち使ったほうが早い。
Amazon EC2 インスタンスの作成
以下のリンクに スクリーンショット付きでインスタンス作成 / theano
のインストール方法が記載されている。前提知識としてこちらをざっと読んでおくのがよいと思う。
インスタンス作成用のイメージ (AMI) としては Amazon Linux AMI を利用する。
補足 CUDA は後述のスクリプトで半自動インストールできるはずだが、インストール時にいくつかダイアログがでてきてうっとおしい。めんどくさければ、NVIDIA が配布している Amazon Linux AMI with NVIDIA GRID GPU Driver を使う。
EC2 のウェブコンソールから インスタンス作成する際には以下のとおり設定する。
- Choose AMI: Amazon Linux AMI を選ぶ。NVIDIA 作成の AMI を利用する場合は、"AWS Marketplace" を "NVIDIA" で検索し "Amazon Linux AMI with NVIDIA GRID GPU Driver" を選ぶ。
- Choose Instance Type: g2.2xlarge
- Configure Instance: そのまま。
- Add Storage: General Purpose (SSD)。CUDA がサイズ大きいため増やしたほうがよい。自分は 15 GB くらいにしてる。
- Tag Instance: 適当に名前つける。
- Configure Security Group: Selct an existing security group を適当に。インバウンドの接続を許可しておくこと。
EC2 インスタンスへの SSL 接続
初回だけ、証明書のパーミッションを変更しておく。
$ chmod 400 default.pem
自分は Elastic IP アドレスは使っていないので、適宜 IP 確認して接続してる。
$ ssh -i default.pem ec2-user@XX.XX.XX.XX
インスタンス上での環境構築
自分が使っているシェルスクリプトを gist においた。利用する場合は自己責任で。EC2 にログインして以下のとおり実行すれば、環境構築からテストまで自動でやってくれる。素の Amazon Linux でも NVIDIA のものでも 両方いけるはず。
$ wget https://gist.github.com/sinhrks/ba9876e7aa2a18a601f8/raw/environment_setup.sh $ chmod +x environment_setup.sh $ ./environment_setup.sh
正しく環境構築されていれば、最後に実行された nosetests
が OK で終わる。
が、たまに nosetests
では 必要な環境変数が読めるが、 pylearn2
からは読めないことがあるっぽい。その場合は
$ source .bashrc
スクリプトでやっていることと、参考サイト
自分がよく使う環境とあわせて作っているので、いらないものがあれば 適当にコメントアウトを。
- CUDA のインストール / GPU 利用設定 (
install_cuda.sh
が実行される) - Python 2.7 のインストール
- numpy 高速化のための数値計算ライブラリのインストール
- 各種 Python パッケージのインストール ( pypi から )
numpy
,scipy
,ipython
,matplotlib
,scikit-learn
,pandas
,statsmodels
,nltk
,gensim
,pystan
+ 依存パッケージ
theano
,pylearn2
のインストール ( github から)pylearn2
のテストデータ (MNIST, CIFAR) をダウンロードし、ホームのdata
ディレクトリに置く- DeepLearning Tutorials のデータダウンロード
- 環境構築結果のテスト (
test_environment.py
が実行される)
Pylearn2 Quick Start Example の実行
Quick-start example — Pylearn2 dev documentation
について、データはすでにダウンロードされているため、以下のような感じで実行できる。他の Example もひととおり実行はできるはず。
$ cd pylearn2/pylearn2/scripts/tutorials/grbm_smd
$ python make_dataset.py
$ ../../train.py cifar_grbm_smd.yaml
まとめ
環境構築まわり、自分でも試行錯誤中なのでまた更新したい。もう少し固まってきたら AMI か Docker にしようかと。
- 作者: 岡谷貴之
- 出版社/メーカー: 講談社
- 発売日: 2015/04/08
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る