Kaggle に 挑戦しているのだが、 自分の 非力な ノート PC で DeepLearning を勉強するのに限界を感じてきたので、 DeepLearning 用のクラウドサービス FloydHub で GPU を使ってみた!
FloydHub とは
DeepLearning 専用の Platform-as-a-Service(PAAS).
Web サイトいわく、DeepLearning 用の Heroku だそうだ。
なにがうれしいかというと、100 時間分フリートライアルで GPU が無料で使えるのだ。
Google の AWS を使ったことがないので、どっちがお得がわからないのだけれども、 とりあえず無料トライアル分だけ遊ぶのもよし、使用料を払って使うもよし。
詳しくは、料金表を見てください。
Floyd インストール
floyd は CLI が用意されているので、pip でインストール。
$ pip install -U floyd-cli
続いて login
$ floyd login
token を取得するために WEB ブラウザが立ち上がるので、 token をコピペすれば、認証完了。
FloydHub で Jupyter Notebook を使う
今回は、この jupyter notebook を動かした。
公式ドキュメントは以下にある。
jupyter notebook の アップロード
jupyter notebook があるディレクトリに移動して、floyd init <プロジェクト名> で初期化。
$ floyd init kg-digit-recognizer
Project "kg-digit-recognizer" initialized in current directory
Input データのアップロード
Input データは、実行用ファイルとは別に管理される。
まずは、データがあるディレクトリに移動して、floyd data init を打つ。
$ floyd data init kg-digit-recognizer
Data source "kg-digit-recognizer" initialized in current directory
You can now upload your data to Floyd by:
floyd data upload
次にサーバにアップロードする。
$ floyd data upload
Compressing data ...
Creating data source. Total upload size: 14.2MiB
Uploading compressed data ...
Done=============================] 14909284/14909284 - 00:00:16
Upload finished
DATA ID NAME VERSION
---------------------- ------------------------------ ---------
adkR2QJxDeUDBS4ZTdqDCW tsu_nera/kg-digit-recognizer:1 1
Jupyter mode で Floyd 起動
jupyter notebook があるディレクトリに戻ってきて、floyd run を打って起動。
このとき、オプションに
- –mode jupyter をつけると jupyter notebook 用に起動する
- -gpu をつけると、GPU を使用するように指定出来る
- -data <Data ID> で input データを利用することが出来る
$ floyd run --mode jupyter --gpu --data adkR2QJxDeUDBS4ZTdqDCW
Creating project run. Total upload size: 148.5KiB
Syncing code ...
Done=============================] 154412/154412 - 00:00:00
RUN ID NAME VERSION
---------------------- ------------------------------ ---------
nDTDCvWFLABp6pcgq6UP9X tsu_nera/kg-digit-recognizer:2 2
Setting up your instance and waiting for Jupyter notebook to become available ......
Path to jupyter notebook: https://www.floydhub.com:8000/ZigtoBzouVNxt7yT4L7vQf
Jupyter Notebook を使う
URL を開くと、いつもの Jupyter Notebook の画面が現れるので、あとは自由に使う。
注意点は、
- 入力データは /input
- 出力データは /output
を指定する必要がある。
output を ダウンロードする
floyd output <RUN ID> を指定すると、/output の URL が帰ってくる。
$ floyd output nDTDCvWFLABp6pcgq6UP9X 18:29:01
Opening output directory in your browser ...
その URL をブラウザに入力すると、出力データがあるので、ダウンロードする。
floyd output <DATA ID> でも同じことができる。
$ floyd data status 18:53:39
DATA ID CREATED DISK USAGE NAME VERSION
---------------------- -------------- ------------ ---------------------------------------- ---------
ZigtoBzouVNxt7yT4L7vQf 17 minutes ago 307.29 KB tsu_nera/kg-digit-recognizer:2/output 2
adkR2QJxDeUDBS4ZTdqDCW an hour ago 122.2 MB tsu_nera/kg-digit-recognizer:1 1
aoVTWy7hL9fdNssGH4hX5n an hour ago 122.71 MB tsu_nera/kg-digit-recognizer:1/output 1
$ floyd data output ZigtoBzouVNxt7yT4L7vQf 18:53:47
Opening output directory in your browser ...
Jupyter Notebook を終了する
floyd stop <RUN ID> で jupyter サーバを停止する。 そうしないと、いつまでも動作し続けることになるので、つかわなくなったら停止すること。
$ floyd stop nDTDCvWFLABp6pcgq6UP9X
Experiment shutdown request submitted. Check status to confirm shutdown
$ floyd status nDTDCvWFLABp6pcgq6UP9X
RUN ID CREATED STATUS DURATION(s) NAME INSTANCE VERSION
---------------------- -------------- -------- ------------- ------------------------------ ---------- ---------
nDTDCvWFLABp6pcgq6UP9X 54 minutes ago shutdown 3250 tsu_nera/kg-digit-recognizer:2 gpu 2
shutdown になっていれば OK.
まとめ
とても便利なものを知ったという気がしてならない。
Deep Learning の勉強をしていると、自分の CPU が遅くて遅くてとてもイライラしていた。
値段も、とても安いよとサイトには買いてあるので、おそらく安いのだろう。
これから流行る予感。便利なサービスはどんどん使っていこう。