これは、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 版をインストールしたい場合は、リポジトリ行の stable を testing に置き換えます。
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>
