tensorboard が表示されない場合の対処

スポンサーリンク

カテゴリ:Tensorboard
Python バージョン:Python2.7
Tensorflowバージョン:Tnsorflow 1.0
OSバージョン:Ubuntu 16.04.2


ブラウザからtensorboard が表示されない場合の対処をまとめました。

原因と対処



・tensorboardを実行していない。以下コマンドを実行する。
tensorboard --logdir=[ログのディレクトリ]

・ポートがバッティングしている。既に他のプロセスがポート番号 6006 を使用している。
この場合、以下のメッセージがコンソールに表示される。

ERROR:tensorflow:TensorBoard attempted to bind to port 6006, but it was already in use
TensorBoard attempted to bind to port 6006, but it was already in use



・マシンスペックに依存するが数分かかる場合がある。

・ブラウザを再起動する。(ブラウザのリロードでは表示されない場合あり)

・tensorboard --log= で指定したフォルダ以下に events.out.tfevents.nnnnnnnnnn.tensorflowtest のファイルが存在するか確認する。

・ブラウザで「Graph」にアクセスした場合、コンソールに以下のような表示が行われることを確認する。表示されない場合は、グラフ定義ファイルの読み込みあるいは生成に失敗している。
 "GET /data/graph?run=MNIST_DATA.org&limit_attr_size=1024&large_attrs_key=_too_large_attrs HTTP/1.1" 200 -

・events.out.tfevents.nnnnnnnnnn.tensorflowtest のファイルサイズを確認。サイズが0あるいは極端に小さい場合は生成に失敗している可能性あり。このファイルはログディレクトリに存在する。
ログディレクトリは Python コードの以下で指定済みのはず。

summary_writer = tf.train.SummaryWriter('/tmp/logfile', graph=sess.graph)

あるいは

writer = tf.summary.FileWriter('/tmp/logfile', graph=sess.graph)

・変数の初期化を忘れている
変数を使用している場合は、初期化を行った後ログ出力したか確認する。
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())

サンプルコード


以下 tensorboard のとても簡単なサンプルコードです。tensorflow 10 で動作確認しています。


import tensorflow as tf

#グラフを定義
def z(x):
#_xという名前の定数のopを定義する。
_x = tf.constant(x,1, name='x')
retvalue = tf.square(_x)
return retvalue

#イベント作成用の関数(tensorboardでグラフを生成するため)
def monitor_calculation(x):
c = z(float(x))
s = tf.summary.scalar("title_here", c)
m = tf.summary.merge([s])
return m

# SummaryWriterでグラフデータ作成。作成先ディレクトリは /tmp/log
#データフローグラフの計算を実行するには、Sessionオブジェクトが必須

with tf.Session() as sess:
summary_writer = tf.summary.FileWriter('/tmp/log', graph=sess.graph)
#初期化
sess.run(tf.global_variables_initializer())
sess.run(tf.local_variables_initializer())
#プロットしたグラフを生成する
for x in range(-10, 10):
summary_str = sess.run(monitor_calculation(x))
summary_writer.add_summary(summary_str, x)


Ubuntu のコンソールでtensorboard --logdir=/root/logを実行した後、同じUbuntu上のブラウザより http://127.0.0.1:6006/ にアクセスします。



スポンサーリンク

[Tensorflow FAQ]

[Tensorflow トップへ]


このページは独学で学習した結果をメモした結果です。内容に不備・誤りがある可能性があります。 また今後仕様が変更となり記述が不正確になる可能性もあります。あくまでも自己責任で本ページを参考にしてください。 本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。