Amazon Ubuntu ディープラーニングインスタンスの設定手順

これは、Amazon EC2 上で Ubuntu のディープラーニングインスタンスを設定したときに私が使った基本手順です。Git のデプロイ先を設定し、Bazel をインストールし、TensorFlow を準備し、Python モジュールをインストールして、対話的な作業用に Jupyter を公開します。

1. Git デプロイサーバーを構築する

クライアントマシンに SSH キーがまだない場合は生成します。

ssh-keygen -t rsa -C "user.email"

インスタンス上に bare Git リポジトリを作成するか既存のものを使い、その post-receive フックを編集します。

vim sample.git/hooks/post-receive

post-receive フックの例です。

#!/bin/sh

GIT_WORK_TREE=/home/ubuntu/Deployment/sample git checkout -f
chmod -R 777 /home/ubuntu/Deployment/sample

フックを実行可能にします。

chmod +x sample.git/hooks/post-receive

これで、bare リポジトリに push すると、最新のファイルが /home/ubuntu/Deployment/sample にチェックアウトされます。

2. Bazel をインストールする

Bazel の APT リポジトリをパッケージソースとして追加します。これは一度だけ行う設定手順です。

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -

Bazel の testing 版をインストールしたい場合は、リポジトリ行の stabletesting に置き換えます。

Bazel をインストールします。

sudo apt-get update
sudo apt-get install bazel

インストール後、Bazel は次のコマンドでアップグレードできます。

sudo apt-get upgrade bazel

新しい Ubuntu リリースでは、Bazel の正確なインストール方法が変わっている可能性があります。現在の Bazel ドキュメントを確認し、ローカルでインストール済みバージョンを検証してください。

bazel version

3. TensorFlow をコンパイルする

TensorFlow のコンパイルは、TensorFlow のバージョン、CUDA のバージョン、cuDNN のバージョン、Python のバージョン、そしてインスタンスにインストールされている GPU ドライバーに大きく依存します。コンパイル前に、ローカル環境を確認します。

python --version
python3 --version
nvcc --version
nvidia-smi
bazel version

典型的なソースビルドのワークフローは次のとおりです。

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
./configure
bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

次に Python wheel をビルドします。

./bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

設定した Python 環境に応じて、生成された wheel を pip または pip3 でインストールします。

pip install /tmp/tensorflow_pkg/tensorflow-*.whl

インストールを確認します。

python -c "import tensorflow as tf; print(tf.__version__)"

4. Python モジュールをインストールする

よく使う Python パッケージをインストールします。

pip install tensorflow numpy pandas

インスタンスがデフォルトで Python 3 を使う場合は、次を使います。

pip3 install tensorflow numpy pandas

通常は、仮想環境内にパッケージをインストールする方が安全です。

python3 -m venv ~/venvs/deeplearning
source ~/venvs/deeplearning/bin/activate
pip install --upgrade pip
pip install tensorflow numpy pandas

モジュールが正しく import できることを確認します。

python - <<'PY'
import tensorflow as tf
import numpy as np
import pandas as pd

print('tensorflow', tf.__version__)
print('numpy', np.__version__)
print('pandas', pd.__version__)
PY

5. Jupyter を設定する

Jupyter をインストールします。

pip install jupyter

設定ファイルを生成します。

jupyter notebook --generate-config

パスワードを設定します。

jupyter notebook password

インスタンス上で Jupyter を起動します。

jupyter notebook --ip=0.0.0.0 --no-browser

ブラウザから notebook にアクセスする必要がある場合は、適切な EC2 セキュリティグループのポートを開けるか、SSH トンネルを使います。通常は SSH トンネルの方が安全です。

ssh -L 8888:localhost:8888 ubuntu@your-ec2-host

その後、このローカル URL を開きます。

http://localhost:8888

参考: <https://punchagan.muse-amuse.in/posts/create-a-public-jupyter-server-quickly.html>

Leave a Reply