チラシ裏日記上等!!新館

Webアプリケーションエンジニアの雑記帳。映画とかアニメとかの記事も書きます。

AWSで機械学習のための開発環境を用意する

前回自宅の環境にubuntuを入れてCUDAの環境を整えました。

www.chirashiura.com

しかしCUDAを利用した学習をさせてみようとしたところエラーで動きませんでした。というのも手持ちの GTX 560 ti はCUDA8.0に対応していなかったからです(対応しているGPUを考えていなかった・・・)。新規でPCを組み直すというのもひとつの手だと思ったのですが、初期費用がかかりすぎるため思い切ってAWSGPUに特化したインスタンスg2.2xlargeでまずはやってみようと思いました。前例もあったので割とすんなり構築できたのでおすすめです。

AWSでの環境構築

環境構築は以下のスライドに習って構築します。

speakerdeck.com

スライドだとcuDNNのインストール先が

/opt/nvidia/cuda/...

になっていたのですが、自分が選択した時のCUDAのインストール先は

/usr/local/cuda/...

になっていたので注意です。これも変わる可能性があるのでCUDAのインストール先はその都度調べたほうがいいですね。

あとは前回の環境構築に習いpyenvをいれanacondaをいれ、OpenCVやChainerを入れています。これでもうほぼ環境構築は完了しました。

AMIの作成

ここまでやったらこの状態でいったんAMIを保存するとあとあとやりやすいと思います。g2.2xlargeはだいたい1時間 $0.9 です。1日じゅう起動させておいたりインスタンスをそのままにしておくのは不経済です。なので、一旦環境を構築した後AMIにしてしまったほうが安くすむはずです(AWSまだそんなに詳しくないのでちょっと自信ないですが・・・ひょっとしたらteminateしないでstopの状態でも安いかも?後で試算します)。

AMIにしたあとそこからインスタンスを生成して見たところ、ちゃんとchainerまでインストールしたものができたので大丈夫です。

実際やってみてどうだったか

実際に「はじめての深層学習プログラミング」のサンプルをcupyを使って実行してみたところ、ローカルのCPUだと20分ぐらいかかっていた計算が1分ぐらいでできるようになりました(ローカルのPCはcore2quadなので古すぎるというのもあります)。

実行したのは「はじめての深層学習プログラミング」から写経したやつをcupyに変えてみたものです。

https://github.com/nasum/practice-machine-learning/blob/master/src/mnist_cnn.py

1時間100円ぐらい使ってちゃんとCUDAが動く環境が得られて実行できることを確認したので、ようやく先に進めそうです。ガシガシやっていくにはやはりちゃんとローカルで動くのを確認してから計算用の環境でスポットでやるというのが一番いい流れなのでいずれはよいPCを購入しなくてはならないと思いますが、とりあえずこれで大丈夫そうです。

環境も構築できたので次からは写経ではなくちゃんと理解して画像分類までできればと思います。