1. 程式人生 > >tensorflow實戰(黃文堅 唐源) 學習筆記4--tensorboard

tensorflow實戰(黃文堅 唐源) 學習筆記4--tensorboard

concept

some tf function

  • 放圖, 用法:name,tensor,max_outputs
tf.summary.image("asd",tensor,10)
  • 統計直方圖
tf.summary.histogram("asd",tensor)
  • scalar 進行統計彙總,單個數值儲存用 tf.summary.scalar,一般用來儲存loss,accuary,學習率等資料,比較常用。
tf.summary.scalar("loss || accuracy",loss || accuracy)
  • 定義了太多的summary彙總操作,逐一執行太麻煩,使用merge_all
merged = tf.summary.merge_all()
  • train 和 test 分開寫writer
train_writer = tf.summary.FileWriter(path,sess.graph)
test_writer = tf.summary.FileWriter(path,sess.graph)
  • utility function
def variable_summaries(var):
    """Attach a lot of summaries to a Tensor (for TensorBoard visualization)."""
with tf.name_scope('summaries'): mean = tf.reduce_mean(var) tf.summary.scalar('mean', mean) with tf.name_scope('stddev'): stddev = tf.sqrt(tf.reduce_mean(tf.square(var - mean))) tf.summary.scalar('stddev', stddev) tf.summary.scalar('max', tf.reduce_max(var)
) tf.summary.scalar('min', tf.reduce_min(var)) tf.summary.histogram('histogram', var)





兩種寫法

1.建模型的時候使用name_scope,graph才會清楚一點,

tf.summary.scalar(tags, values)
tf.summary.histogram("name",tensor)
tf.summary.image("name",tensor,10)
# ...
merged = tf.summary.merge_all()
Writer = tf.summary.FileWriter(path, graph=sess.graph)

for epoch in XXX:
	run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
	run_metadata = tf.RunMetadata()
	summary = sess.run([merged,optimizer],options=run_options,
							run_metadata=run_metadata)
							
	Writer.add_run_metadata(run_metadata,"epoch %d"%epoch)
	Writer.add_summary(summary, global_step)

2.邊寫邊 addsummary

summary_writer = tf.summary.FileWriter(logdir)
"""
.
.
.
"""
summary = tf.Summary(value=[
    tf.Summary.Value(tag="summary_tag", simple_value=0), 
    tf.Summary.Value(tag="summary_tag2", simple_value=1),
])
# x代表橫軸座標
summary_writer.add_summary(summary, x)

或者

summary_writer = tf.summary.FileWriter(logdir)
summary = tf.Summary()
summary.value.add(tag="summary_tag", simple_value=0)
summary.value.add(tag="summary_tag2", simple_value=1)
# x代表橫軸座標
summary_writer.add_summary(summary, x)

implement

demo1,第一種做法, 使用我的前一篇文章實作

code

demo2, 第二種做法

import tensorflow as tf
summary_writer = tf.summary.FileWriter('/tmp/test')
summary = tf.Summary(value=[
    tf.Summary.Value(tag="summary_tag", simple_value=0), 
    tf.Summary.Value(tag="summary_tag2", simple_value=1),
])
summary_writer.add_summary(summary, 1)

summary = tf.Summary(value=[
    tf.Summary.Value(tag="summary_tag", simple_value=1), 
    tf.Summary.Value(tag="summary_tag2", simple_value=3),
])
summary_writer.add_summary(summary, 2)

summary_writer.close()


--------------------- 
作者:EncodeTS 
來源:CSDN 
原文:https://blog.csdn.net/EncodeTS/article/details/54172807 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

references:
https://blog.csdn.net/EncodeTS/article/details/54172807