はじめに
静岡Developers勉強会では「人工知能ハンズオン」を2016/4/23に開催します。自PC(Windows 10 Home 64bit)にDockerを使ってGoogleが提供しているオープンソースの人工知能ライブラリ「TensorFlow」を入れて動かすことが出来たのですが、Dockerって64bit版のみで32bit版がありません。
勉強会なので32bit PCしか持っていない人をどうしようかと思ったら、あるじゃないですか? そう、クラウドならね。
環境
1年間の無料枠で構築
AWS EC2の登録
AWS EC2の登録は長くなるので別記事にしました。DockerとTensorFlowの導入まで記事がかぶってますが・・・ qiita.com
Dockerのインストール
下記サイトを参考にDockerをインストールしました。
EC2にDockerをインストールしてNginxコンテナを作る
Dockerをインストール
sudo yum install -y docker
Dockerを起動
$ sudo service docker start Starting cgconfig service: [ OK ] Starting docker:
ec2-userをdockerグループに追加
$ sudo usermod -a -G docker ec2-user $ cat /etc/group |grep docker docker:x:497:ec2-user
グループに追加されていることを確認したら、一度ログアウト(exit)して再度ログインしてください。
dockerグループに所属していれば、sudoなしで ec2-userから Dockerコマンドが使えます。
docker info ︙ Kernel Version: 4.4.5-15.26.amzn1.x86_64 Operating System: Amazon Linux AMI 2016.03
DockerにTensorFlowのインストール
TensorflowのサイトのDocker installationにインストールする方法が記載されています。ポートは指定しました。
$ docker run -p 8888:8888 -p 6006:6006 b.gcr.io/tensorflow/tensorflow ︙ [I 08:48:55.427 NotebookApp] The Jupyter Notebook is running at: http://[all ip addresses on your system]:8888/ [I 08:48:55.427 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
記載のコマンドを入力するとtensorflowがインストールされていきます。
WebブラウザでdefaultマシンのIPアドレスにポート番号8888を付ければ、Notebook(Jupyter)が動作するとなっています。
Jupyter Notebookの起動
Webブラウザで「http:(パブリックIP):8888/」と入力するとJupyter Notebookが起動されました。
※AWS EC2のパブリックIPを指定して下さい。
TensorFlowのサンプル確認
DockerのTensorFlowには、下記のサンプルが最初から用意されています。
- 1_hellow_tensorflow.ipynb
- 2_getting_started.ipynb
- 3_minst_from_scratch.ipynb
※DockerのTensorflowはPython2用となります。
TensorBoradの確認
このサイトの「TensorBoardによる可視化」にあるソースを入力します。
※その上にあるdef x2_plus_b(x, b)関数も入力が必要です。
実行するとlogフォルダが作成されます。 次に右横の「New」で「Terminal」を作成します。
Terminalにて、下記コマンドを入力します。
# tensorboard --logdir=log
これでWebブラウザで「http:(パブリックIP):6006/」と入力すると「TernsorBorad」が表示されます。
※最初にグラフが「No scalar summary tags were found.」のエラーで表示されなかったのですが、Dockerをリスタートしたら表示されるようになりました。
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES cea774063516 b.gcr.io/tensorflow/tensorflow "/run_jupyter.sh" 31 hours ago Up 31 hours 0.0.0.0:6006->6006/tcp, 0.0.0.0:8888->8888/tcp thirsty_kare $ docker stop thirsty_kare $ docker start thirsty_kare
TensorBoradの停止
Runningタブにて該当Terminalの「Shutdown」ボタンをクリックすれば停止します。