TensorFlowのチュートリアルをDockerで動かしてみる

AIOpsなどの波に押し寄せられ、機械学習について最初の一歩を恐る恐る踏み出してみました。これから始める方のために一応残しておきます。

  • TensorFlowとは
  • TensorFlowをローカルで動かす
  • TensorFlowのチュートリアルを試す

TensorFlowとは


公式ドキュメントでは、以下の通り記載があります。

TensorFlow は、機械学習向けに開発されたエンドツーエンドのオープンソース プラットフォームです。
引用元:https://www.tensorflow.org

Machine Learning(ML)を使ったアプリケーションを開発・デプロイするために作成されました。

TensorFlowをローカルで動かす


TensorFlowをローカルで動かすには、以下二通りの方法があります。本記事ではリンク先を参考に、コンテナとして実行する方法で動かします。

  • pipコマンドによるインストール
  • Dockerによるコンテナ実行

1. コンテナイメージをpullする


以下のコマンドでTensorFlowのコンテナイメージを取得します。

$ docker pull tensorflow/tensorflow:nightly-py3-jupyter

コンテナイメージにおけるタグ情報のオプションはリンク先をご参照ください。ここでは、python3のサポートとJupyterを含むナイトリービルド(最新ソースコード)のコンテナイメージを取得しています。

ちなみにJupyterとは、プログラミング言語をウェブブラウザ上で実行できるドキュメントツールです。ソースコードと説明文が混在したドキュメントを作成し、ソースコードとその実行結果をインタラクティブに表示することができます。

2. コンテナを起動する


以下のコマンドで、手順1で取得したコンテナイメージからコンテナを起動します。

$ docker run -it -p 8888:8888 tensorflow/tensorflow:nightly-py3-jupyter
[I 14:54:21.897 NotebookApp] Writing notebook server cookie secret to /root/.local/share/jupyter/runtime/notebook_cookie_secret
jupyter_http_over_ws extension initialized. Listening on /http_over_websocket
[I 14:54:22.459 NotebookApp] Serving notebooks from local directory: /tf
[I 14:54:22.459 NotebookApp] The Jupyter Notebook is running at:
[I 14:54:22.461 NotebookApp] http://453c162dd9e3:8888/?token=d233277b7f66020bbc79ea155a906ed4c41fc3846634511d
[I 14:54:22.461 NotebookApp]  or http://127.0.0.1:8888/?token=d233277b7f66020bbc79ea155a906ed4c41fc3846634511d
[I 14:54:22.463 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 14:54:22.471 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///root/.local/share/jupyter/runtime/nbserver-1-open.html
    Or copy and paste one of these URLs:
        http://453c162dd9e3:8888/?token=d233277b7f66020bbc79ea155a906ed4c41fc3846634511d
     or http://127.0.0.1:8888/?token=d233277b7f66020bbc79ea155a906ed4c41fc3846634511d

3. ブラウザからログインする


標準出力されたOr copy and paste one of these URLs配下のURLをコピーしてブラウザアクセスすると、以下の画面が表示されます。

TensorFlowのチュートリアルを試す


Dockerで動かしたJupyterを使って、TensorFlowのチュートリアル(分類問題の初歩)を試してみます。このチュートリアル自体は、機械学習のHello Worldに該当するそうです。

1. ipynbファイルを表示する


「tensorflow-tutorials」→「classification.ipynb」をクリックします。

2. 「Run」ボタンをクリックする


「Run」ボタンをクリックし、上から順にソースコードを実行していきます。それぞれの出力結果については、チュートリアルに記載されているので省略します。

チュートリアルで実施している内容をざっくり要約すると以下になります。

以上です。チュートリアルを一通りやるだけでも勉強になりました。