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

猜你喜欢

转载自blog.csdn.net/weixin_38699659/article/details/84860758