-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Ryo Nakamaru edited this page Jul 22, 2017
·
15 revisions
https://console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Instances
- このハンズオンでは無料枠ではないインスタンスタイプを利用します
- クーポンを利用する際は該当のアカウントであることを確認しましょう
https://aws.amazon.com/marketplace/pp/B01M0AXXQB
- AWS 公式の深層学習用 AMI
-
continue
を押しましょう
- ポートなどを調整したいので
Manual Launch
を選択 - AMI のバージョンが 2.3 であることを確認して
- Asia Pacific (Tokyo) の
Launch with EC2 Console
を押します
-
p2.xlarge
を選択し -
次の手順: インスタンスの詳細を設定
に進みましょう
-
自動割り当てパブリック IP が
有効
であることを確認 - EC2 に慣れている方は
スポットインスタンスのリクエスト
もどうぞ -
次の手順: ストレージの追加
に進みましょう
-
ストレージ
とタグ
の設定はそのまま次の手順へ -
ルールの追加
から、80 番ポートを追加 -
確認と作成
を押します
- Deep Learning AMI
- p2.xlarge
- 22 / 80 番ポートの解放
-
作成
を押します
-
新しいキーペアの作成
を選択します - 適当な名前をつけて
キーペアのダウンロード
を押しましょう - キーペアが保存できたら
インスタンスの作成
を押します
起動したインスタンスを選択し、パプリック IP アドレスを確認します。 https://console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#Instances
- Mac ならターミナル、Windows なら TeraTerm などを起動
- ダウンロードした pem を使って SSH ログイン
- 不慣れな方は こちら をご覧ください..
- ユーザ名は
ec2-user
です - <ec2.public.ip.address> を
2.1
で確認した IP アドレスと置き換えてください
$ chmod 400 keypair.pem
$ ssh -i keypair.pem ec2-user@<ec2.public.ip.address>
- Deep Learning AMI はなんと NVIDIA ドライバもインストール済!
- 以下のコマンドで GPU の状況を確認してみましょう
[ec2-user ~]$ nvidia-smi
Thu Jul 20 12:00:00 2017
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 367.57 Driver Version: 367.57 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GRID K520 On | 0000:00:03.0 Off | N/A |
| N/A 31C P8 17W / 125W | 0MiB / 4036MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
p2, g3 系インスタンスで可能な GPU 設定の最適化を行います。
設定を永続化、自動ブースト機能を無効に、そしてクロック速度を最大周波数に設定します。
[ec2-user ~]$ sudo nvidia-smi -pm 1
[ec2-user ~]$ sudo nvidia-smi --auto-boost-default=0
[ec2-user ~]$ sudo nvidia-smi -ac 2505,875
プリインストールされた TensorFlow も動作を確認してみましょう。
[ec2-user ~]$ python -c 'import tensorflow as tf; print(tf.__version__)'
1.1.0
[ec2-user ~]$ sudo yum update -y
[ec2-user ~]$ sudo yum install -y docker
[ec2-user ~]$ sudo service docker start
[ec2-user ~]$ sudo usermod -a -G docker ec2-user
[ec2-user ~]$ exit
$ ssh -i keypair.pem ec2-user@<ec2.public.ip.address>
[ec2-user ~]$ docker version
[ec2-user ~]$ wget -P /tmp https://github.com/NVIDIA/nvidia-docker/releases/download/v1.0.1/nvidia-docker_1.0.1_amd64.tar.xz
[ec2-user ~]$ sudo tar --strip-components=1 -C /usr/bin -xvf /tmp/nvidia-docker*.tar.xz && rm /tmp/nvidia-docker*.tar.xz
[ec2-user ~]$ sudo -b nohup nvidia-docker-plugin > /tmp/nvidia-docker.log
[ec2-user ~]$ #(もう一度 Enter キーを押す)
[ec2-user ~]$ git clone https://github.com/supinf/dl-handson.git
[ec2-user ~]$ cd dl-handson/kaggle/kakauandme/tensorflow-deep-nn
以下、本来は Kaggle で利用規約などに同意し、ログインした状態で取得するファイルです。
後から復習する際は、ぜひ正規の手順でデータをダウンロードしてください。
[ec2-user ~]$ wget https://s3-ap-northeast-1.amazonaws.com/jawsug-ai/train.csv
[ec2-user ~]$ wget https://s3-ap-northeast-1.amazonaws.com/jawsug-ai/test.csv
[ec2-user ~]$ nvidia-docker run -it -p 80:8888 -v $(pwd):/notebooks \
tensorflow/tensorflow:1.2.0-gpu-py3
1.2.0-gpu-py3: Pulling from tensorflow/tensorflow
bd97b43c27e3: Pull complete
(中略)
[I 19:47:14.139 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 19:47:14.140 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=909a0dc3eb59cf795990321f6c847f6846998f17bb119afd
-
2.1
で確認した EC2 のパブリック IP アドレスをブラウザで開く -
4.3
の出力ログの最終行にあるtoken
を使ってログイン -
handson.ipynb
を開き、学習を開始します
submission_softmax.csv
をダウンロードして、競技会へ Submit してみましょう!
[ec2-user ~]$ #( Ctrl + C で Jupyter notebook を終了)
[ec2-user ~]$ cd ~/dl-handson/kaggle/ornew/dogs-vs-cats-redux/
以下も、本来は Kaggle で利用規約などに同意し、ログインした状態で取得するファイルです。
後から復習する際はやはり、ぜひ正規の手順でデータをダウンロードしてください。
[ec2-user ~]$ wget https://s3-ap-northeast-1.amazonaws.com/jawsug-ai/train.zip
[ec2-user ~]$ wget https://s3-ap-northeast-1.amazonaws.com/jawsug-ai/test.zip
[ec2-user ~]$ unzip -q train.zip
[ec2-user ~]$ unzip -q test.zip
[ec2-user ~]$ pushd prod
[ec2-user ~]$ docker build -t keras:2.0 .
[ec2-user ~]$ popd
[ec2-user ~]$ nvidia-docker run -it -p 80:8888 -v $(pwd):/notebooks keras:2.0
[I 08:33:53.358 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
[W 08:33:53.379 NotebookApp] WARNING: The notebook server is listening on all IP addresses and not using encryption. This is not recommended.
[I 08:33:53.389 NotebookApp] Serving notebooks from local directory: /notebooks
[I 08:33:53.389 NotebookApp] 0 active kernels
[I 08:33:53.389 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/?token=b962fed38097dcd24f7a7114a77520f49335bdcdc8eead55
[I 08:33:53.389 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 08:33:53.389 NotebookApp]
Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
http://localhost:8888/?token=b962fed38097dcd24f7a7114a77520f49335bdcdc8eead55
-
2.1
で確認した EC2 のパブリック IP アドレスをブラウザで開く -
5.3
の出力ログの最終行にあるtoken
を使ってログイン -
handson.ipynb
を開き、学習を開始します