はじめに
布教用メモです。ローカルリソース実行だとPCがつらいことになるので環境を分離したい人向けです。
学習コピペ用に先頭の$
表記は外しています。
再構築の手間(Docker上ではないけど構築失敗しても気軽にインスタンスをつぶせる)と価格を重視しています。実行速度重視、GPUをぶん回したい場合は別記事を参考にしてください。
手順
Amazon EC2インスタンス追加
- https://ap-northeast-1.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-1#LaunchInstanceWizard
- Ubuntuパッケージを選択。
- 「セキュリティグループ」でポートをいい感じにあけておく。細かくは省略。
- ssh: 22
- Jupyter: 8888
- AWS未契約の人は
t2.micro
を使えば(たぶん)新規契約から1年間は無料。 - 作成後、パブリックDNS(ec2-xxxxxxxxxx.ap-northeast-1.compute.amazonaws.com)はコピーしてテキストエディタに貼り付けておく
sshログイン
chmod 600 xxxxxxxxxx.pem
ssh -v -i xxxxxxxxxx.pem ubuntu@ec2-xxxxxxxxxx.ap-northeast-1.compute.amazonaws.com
パッケージ更新
sudo apt-get update && sudo apt-get -y upgrade
Python準備
pipインストール
sudo apt-get install -y python-pip python-dev
sudo pip install -U pip
機械学習ライブラリ + TensorFlow
よく使うライブラリのインストール
以下をインストールしている。
- numpy: 行列計算ライブラリ
- scipy: 科学計算ライブラリ
- pandas: データフレームライブラリ
- matplotlib: グラフ描画ライブラリ
- Pillow: 画像処理ライブラリ
- scikit-learn: 機械学習ライブラリ
- google-api-python-client: Google API Client for Python
sudo apt-get install -y libpq-dev python-matplotlib gfortran
sudo pip install --upgrade pip
sudo pip install numpy scipy pandas matplotlib Pillow scikit-learn
sudo pip install google-api-python-client
TensorFlowインストール
2016/09/01時点での最新版をインストール。
最新版を確認してからインストールしてください。
sudo pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.10.0rc0-cp27-none-linux_x86_64.whl
Jupyter
Jupyterインストール
sudo pip install jupyter
Jupyter config変更(ポート設定など)
jupyter notebook --generate-config && ipython profile create
echo "c = get_config()" >> /home/ubuntu/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.ip = '*'" >> /home/ubuntu/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.open_browser = False" >> /home/ubuntu/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.port = 8888" >> /home/ubuntu/.jupyter/jupyter_notebook_config.py
echo "c.InteractiveShellApp.matplotlib = 'inline'" >> /home/ubuntu/.ipython/profile_default/ipython_kernel_config.py
Jupyterのログインパスワード設定
ログインパスワードを登録。登録完了後に表示されるsha1をコピーしておく。
python -c 'import IPython;print(IPython.lib.passwd())'
コピーしたsha1をconfigに追加する。
echo "c.NotebookApp.password = 'sha1:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'" >> /home/ubuntu/.jupyter/jupyter_notebook_config.py
Jupyter起動
jupyter notebook
で起動するとhttp://ec2-x-x-x-x.ap-northeast-1.compute.amazonaws.com:8888/
でログイン可能。
EC2インスタンス起動と同時に起動したい場合は/etc/rc.local
に起動スクリプトを登録しておく。
Jupyter動作確認
ブラウザからログイン、TensorFlowのHello, Worldサンプルで42が表示されればOK
import tensorflow as tf
hello = tf.constant("Hello, TensorFlow!")
sess = tf.Session()
print(sess.run(hello))
a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a + b))