マッツォ先輩(@understeer)が、MXNet Notebooks(https://github.com/dmlc/mxnet-notebooks) に沿ってやれば、MNIST(手書きの数字を認識)のチュートリアルとか簡単に出来るよ、と教えてくれたので、個人的にやってみました。
GPUインスンタンスを起動
ami-fe217de9 のAMI(Amazon Machine Image)を、GPUを積んでいるEC2インスタンスであるp2.xlargeので起動します。セキュリティグループは8888ポートを開けておく感じ。 //embedr.flickr.com/assets/client-code.js
ami-fe217de9 は https://gist.github.com/mli/b64322f446b2043e3350ddcbfa5957be のように作られているUbuntuです。 - cuda: Compute Unified Device Architecture。NVIDIA社によるGPU向けの統合開発環境 - cudnn: CUDA用のDeep Neural Networkライブラリ - mxnetが依存するライブラリ: libopenblas-dev(行列演算) libopencv-dev(画像認識) python-numpy(数値計算) 等 - mxnet: Apache MXNetについてはコチラ⇒ https://aws.amazon.com/jp/mxnet/ - python and jupyter: Jupyter Notebookでブラウザからポチポチやりながらキャッキャウフフできちゃうやつ
SSHでインスタンスに接続
ポートフォワードして localhost:8888 でブラウザからアクセスできるように↓こんな感じ。
ssh -i pemファイル -L 8888:localhost:8888 ubuntu@ホスト名
EC2上で git clone https://github.com/dmlc/mxnet-notebooks してから、 jupyter notebook で、Jupyter Notebookのプロセスが立ち上がるので、 ブラウザからlocalhost:888にアクセスすると↓こんな画面が出てきて、 //embedr.flickr.com/assets/client-code.js http://localhost:8888/notebooks/mxnet-notebooks/python/outline.ipynb に行くと、それっぽいページ。 //embedr.flickr.com/assets/client-code.js
Handwritten Digit Recognitionのチュートリアル
ここからは英語とPythonの世界、、と構えていたら、 //embedr.flickr.com/assets/client-code.js クラスキャットさんの MXNet チュートリアル : 手書き数字認識 – MNIST という記事。日本語 :)
Pythonのコードそのものは直感的で分かりやすいけど、ちゃんと理解しながら読み込むのは知識がないと厳しいかもしれませんが、、例えば"1"という文字を右端の方に入力したら"5"と認識されてしまうけど、 //embedr.flickr.com/assets/client-code.js 真ん中に入力したらちゃんと"1"と入力された、 //embedr.flickr.com/assets/client-code.js といったようなインタラクティブな感じでチュートリアルを進められるとDeep Learningしてる実感みたいのが持てて嬉しくなってきたりしますね :)
@eiichirouchiumiがまずは↓コレ読めって言ってたから、さっきポチってみたところです。