TensorFlow #TensorBoard

TensorFlowを強力にも、複雑にもしているのが解析サマリー出力のTensorBoardであろう。
サマリーは、TensorBoardとして、デフォルトではローカルホストのウェブ上に、URL: http://localhost:6006 に出力される。ただし、出力用のコードを各所に埋め込んで、その上で準備ができたら、

で、ローカルホストにサイトが立ち上がる。ここで、tendroboardの出力フォルダーと、TensorFlowのサマリーの出力フォルダーを一致させることが絶対条件となる。
tensoboardコマンドは、

を指定することができる。

TensorBoardは、TensorFlowで作成したGraphを実際のグラフとして出力してくれるし、また機械学習のパラメータの変化を図に表示してくれる。
tensorboardのsummaryオペレーションは、tf.summary.に続く以下のコードの選択が取れる。

最後のmerge_allの引数には、Graph Collection Keysのサマリーを指定する tf.GraphKeys.SUMMARIES
が使用されている。

代表的な流れととしては、例えばスカラー値aやbをtensorboard表示したければ、

として、次にサマリーを合体:

次に、FileWriterクラスで、

というように。出力ディレクトリlogdirと、デフォルトのGraphを指定する。具体的には以下のように:

最後にsession()内で

とする。要するにセッション内で、merged_opを通じてtf.summary.merge_all()を実行してサマリー全体をまとめ、次にサマリー全体をwriterに送り込む。

FileWriterクラスのmethodには、

OSによっては能動的に、最後に、

として、フラッシュさせないと書き込みしないケースがあるので注意が必要だ。

シンプルな実行例 a+b をあげておくと、

で、tensorboardを、

でターミナルから起動させる。すると、graphは以下のように表示され、

firstとsecondがAddされて、結果sumがグラフ表示されることを解りやすくグラフ表示している!
足し算の結果のscalar値は、以下の様にグラフ表示される。