本記事で、伝えたいこと:
・AWSで、Jupiter notebookを使ってみる
・AWSで、GPUを利用して、モデルをトレーニングする
本記事が、参考にならない方:
・AWSのインスタンスを詳しく知りたい方
・Kaggleのcodeを利用する方
今回、投稿した記事の目的は、画像分類コンペに参加するにあたって、
kaggleのGPU利用制限枠に限界を感じた初心者が、好きなだけGPUを使って、
トレーニングを出来るようになったので、自身のメモ兼、同じように悩んでいる方の参考に
なればと思い、共有させてもらいます。
■ 手順
AWSの日本語チュートリアル通りに行いました。
https://docs.aws.amazon.com/ja_jp/dlami/latest/devguide/what-is-dlami.html
- GPUの制限緩和
まずは、GPUを利用するために、利用制限の緩和を依頼します。
注意点は、こんなところでした。
* リージョンごとに、申請する必要があるため、利用するリージョンで申請する。
* 利用目的は、機械学習を行うため。で問題ありませんでした。
* 平日の昼間に行わないと、対応が翌日以降になるかもしれません。
* スポットインスタンスとインスタンスで、別々の利用制限になっている。
インスタンスの方が、早く対応してもらえる。
-
インスタンスの作成
AMIや、コンピュータユニットを設定します。
注意点は、
* AMIは、Deep Learning AMIを選ぶと、既に機械学習に必要なライブラリーが
インストール済みで便利。(この時点では、Ubuntu18.04が最新のはずです)
似た名前のDeep Learning Base AMIは、最低限しか入っていないです。
* インスタンスタイプは、メモリーや、gpu、ドライブ容量で選択します。
今回は、g4dn.xlargeを利用しました。 -
キーペアの作成、SSH接続
キーペアを作成し、ローカルからSSH接続を行います。
注意点は、
* Macならbashから、接続できます。
~ % ssh -I 'xxxxxx.pem' user@ec*----**.region.compute.amazonaws.com
-
SSLを証明書発行して、Jupyter notebook起動
Jupyterの起動は、以下を参考にしました。
https://docs.aws.amazon.com/ja_jp/dlami/latest/devguide/setup-jupyter.html -
kaggle APIで、データセットダウンロード
Kaggle.jsonファイルを利用して、コンペデータをダウンロードします。 -
トレーニング済みのweightをサーバーからダウンロード
モデルのトレーニングデータをサーバーから、ローカルにダウンロードします。
ローカルのbashで以下を、実行します。(キーペア名、ユーザー名などは適宜修正)
scp my.pem user_name download_file_path save_path (@local bash)
参考リンク:
・AWSのチュートリアル
https://docs.aws.amazon.com/ja_jp/dlami/latest/devguide/what-is-dlami.html
・Kaggle
https://www.kaggle.com