は、TensorBoardはそのためのものです。
ここではどのようにすることができます。
まず、テンソルのmin、max、mean、std-devを記録する関数を定義しましょう。
def variable_summaries(var, name):
with tf.name_scope("summaries"):
mean = tf.reduce_mean(var)
tf.scalar_summary('mean/' + name, mean)
with tf.name_scope('stddev'):
stddev = tf.sqrt(tf.reduce_sum(tf.square(var - mean)))
tf.scalar_summary('stddev/' + name, stddev)
tf.scalar_summary('max/' + name, tf.reduce_max(var))
tf.scalar_summary('min/' + name, tf.reduce_min(var))
tf.histogram_summary(name, var)
次に、以下のようなグラフを作成した後に要約操作を作成します。 このコードは、 "mnist_tf_log"ディレクトリにクロスエントロピーを持つ第1層の重みとバイアスを保存します。
variable_summaries(W_fc1, "W_fc1")
variable_summaries(b_fc1, "b_fc1")
tf.scalar_summary("cross_entropy:", cross_entropy)
summary_op = tf.merge_all_summaries()
summary_writer = tf.train.SummaryWriter("mnist_tf_log", graph_def=sess.graph)
これですべての設定が完了しました。 summary_opを返してこれらのデータを記録し、summary_writerに渡すことができます。
ここでは、10回のトレーニングステップごとにログを記録する例を示します。
for i in range(1000):
batch_xs, batch_ys = mnist.train.next_batch(100)
if i % 10 == 0:
_, summary_str = sess.run([train_step, summary_op], feed_dict={x: batch_xs, y_: batch_ys})
summary_writer.add_summary(summary_str, i)
summary_writer.flush()
else:
sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})
コードを実行した後にTensorBoardを実行します。
python /path/to/tensorboard/tensorboard.py --logdir=mnist_tf_log
あなたのウェブブラウザでhttp://localhost:6006を開いて結果を見ることができます。
![enter image description here](https://i.stack.imgur.com/1iewu.png)
は[TensorBoard](https://www.tensorflow.org/versions/r0.9/how_tos/summaries_and_tensorboard/index.html#tensorboard-visualizing-learning)を見てください。 – hbaderts