TensorFlowによるプログラミングのメリットの一つに、TensorBoardが利用できることがあります。
TensorBoardは計算の過程や計算モデルを可視化することができます。
今回はこのTensorBoardの使い方を調べました。
Contents
TensorBoard
TensorBoardはTensorFlowに付属しているデータの可視化ソフトです。
TennsorBoardではTensorFlowで構築した計算モデルや学習・損失の過程をWebベースで可視化することができます。
学習の過程を可視化することによって機械学習が正常に行われているかチェックすることができ、またハイパラメータのチューニングにも利用されます。
またTensorBoardはTensorFlowの付属ツールであるので、TensorFlowから非常に簡単に利用することができます。
TensorBoardでは次のようなデータを可視化することができます。
- Scalars : スカラーの推移
- Images: 画像データ
- Graphs : 構築された計算グラフ
- Histograms・Distributions : テンソルの分布情報の推移
- Text : 文字情報
TensorBoardでデータの可視化を行うには次のようなステップを行います。
- データ取得用命令の配置
- データ取得命令の最後にマージ命令を配置
- データの出力先を指定
- データ取得とマージ命令を実行
- データを出力する
- TensorBoardを実行する
データ取得命令
Scalars
スカラー値の推移を取得するには次の関数を使用します。
1 |
tf.summary.scalar("名前", スカラー値) |
入力するデータは必ずスカラー(0階テンソル)でなければなりません。
1階以上のテンソルを取得するためにはのちに述べる、Histograms・Distributionsを使用します。
Images
画像データを可視化するための、データ取得命令を示します。
1 |
tf.summary.image("名前", 画像データ, 最大画像記録数) |
- 第一引数は登録名の指定
- 第二引数は画像データ、フォーマットは[ミニバッチサイズ, 縦, 横, チャンネル数]の四階テンソル
- 第三引数は記録する画像枚数の上限値
Graphs
計算グラフのデータ取得命令は特に必要ありません。TensorFlowの実行時に自動的に計算されます。
Graphsの便利な機能として name_scope があります。
name_scopeは計算グラフの各階層や処理をまとめ整理し、より見やすくすることができます。
name_scopeは次のように使用します。
1 2 3 4 5 6 7 |
with tf.name_scope("input"): #インプット処理 with tf.name_scope("output"): #アウトプット処理 |
このようにname_scopeを設定すると、入力処理はスコープ input で括られ、出力処理は スコープ output で括られてTensorFlow上で表示されます。
Histograms・Distributions
1階以上のテンソルの分布・推移を取得するために使用します。
1 |
tf.summary.histogram("名前", テンソル) |
tf.summary.histogram() を使用すると、TensorBoardではDistributionsとHistogramsの結果が表示されます。
データのマージ
データ取得命令を設置したら、最後にデータのマージを行います。
1 |
summ = tf.summary.merge_all() |
上記の命令ではデータのマージを一括で行うことができます。
個別に行いたい場合は次の関数を使用します。
1 |
summ = tf.summary.merge() |
マージの詳しい方法は下記記事にまとめましたので参考にしてください。
データの書き込み
データをファイルに書き込むには次の命令を使用します。
1 2 3 4 5 |
summ_witer = tf.summary.FileWriter("ディレクトリ名", sess.graph) summ_pb = sess.run(マージ命令) summ_witer.add = (summ_pb, 回数) |
この命令を実行後ディレクトリ名の場所にログファイルができていることを確認してください。ログファイルができていれば、TensorBoardを使用することができます。
TensorBoardの実行
ログファイルを作成したら、TensorBoardを起動します。起動は端末上で次のコマンドを実行します。
1 |
tensorboard --logdir ログファイルのディレクトリ |
上記のコマンドを実行すると次のような画面が出力されます。
1 |
TensorBoard 1.8.0 at http://DESKTOP-CSQ3QRK:6006 (Press CTRL+C to quit) |
後はブラウザーで上記に表示されたアドレスにアクセスすればTensorBoardを使用することができます。
まとめ
- TensorBoardはTensorFlowに付属したデータ可視化ツールでです
- でーたの取得には取得するデータに対応した命令をプログラム中に設定する
- データ取得命令を設置したら、データのマージ命令を設置する。
- マージしたデータを tf.summary.FileWriter を用いてログファイルの書きこむ
- TensorBoardを起動し、WebブラウザーでTensorBoardにアクセスする
関連記事