読者です 読者をやめる 読者になる 読者になる

daiizの自由帳

フレンチフライ トリュフ塩仕立て

TensorBoardとJupyterで最高の実験環境が整った

TensorFlow tech

ほしいものリストに登録していた本『TensorFlowで学ぶディープラーニング入門』を頂きました.ありがとうございます!!! さっそく丁寧に読み進めていきます.

f:id:daiiz:20161008032934j:plain

まずは実験環境の構築.TensorFlowは比較的最新のものが既に入っているのでOK. ちなみに本では Python 2.7 & TensorFlow 0.9.0 が採用されている.

>>> import tensorflow as tf
>>> tf.__version__
'0.10.0rc0'

今回新しく導入したのは,jupyterというもの.少し試してみたところ,これはかなり便利だと思った.対話的にPythonを書ける.ターミナルからも同じようなことはできるけれど,jupyterだと,一連のプログラムとその実行結果(出力文字列だけでなく,プロット図とかもOK)の流れをipynb (IPython Noteboook)形式のファイルとして保存できる.そしてこのファイルは,GitHubやPyCharmで整形された状態で閲覧できる.

インストールは簡単.pip一発.

$ pip install jupyter

これが完了したら,$ jupyter notebookを実行してノートブックを起動できる.終了はCtrl+C

The Jupyter Notebook is running at: http://localhost:8888/

TensorFlowで書く意味ないくらい超簡単なプログラムを書いて実行してみた様子がこちら.前半部ではノード(Operation)を繋いでグラフを構築している.後半のSession内で,グラフが実際に実行されている.2つの定数を足して掛けて引いたりしている.機械学習系のプログラムでは特に,値を手計算できるものは予想を立ててから実行することが大切.

f:id:daiiz:20161008033149p:plain

TensorFlowをインストールすると自動的に付いてくるTensorBoardを使って,グラフの様子を確認してみる.まだよく分かっていないけれど,jupyterは直前の実行結果を保持し続けているらしく,繰り返し実行しているとグラフが重なってぐちゃぐちゃになる.TensorBoardを起動するプログラムはjupyterから実行しないほうが良い気がしている.

上のプログラムをファイルに保存して実行した後,$ tensorboard --logdir ./log のようにしてTensorBoardを起動する *1

Starting TensorBoard 23 on port 6006
(You can navigate to http://0.0.0.0:6006)

動的なグラフをこんなに綺麗に描けて凄い.

f:id:daiiz:20161008033203p:plain

*1:Googleがport番号を6006に設定したのはGOOGと似ているからだろうか