首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tensorflow学习笔记(二十一):tensorflow可视化

tensorflow学习笔记(二十一):tensorflow可视化

作者头像
ke1th
发布2019-05-26 12:31:42
4750
发布2019-05-26 12:31:42
举报

tensorflow的可视化是使用summarytensorboard合作完成的.

基本用法

首先明确一点,summary也是op.

输出网络结构

with tf.Session() as sess:
  writer = tf.summary.FileWriter(your_dir, sess.graph)

命令行运行tensorboard --logdir your_dir,然后浏览器输入127.0.1.1:6006注:tf1.1.0 版本的tensorboard端口换了(0.0.0.0:6006) 这样你就可以在tensorboard中看到你的网络结构图了

可视化参数

#ops
loss = ...
tf.summary.scalar("loss", loss)
merged_summary = tf.summary.merge_all()

init = tf.global_variable_initializer()
with tf.Session() as sess:
  writer = tf.summary.FileWriter(your_dir, sess.graph)
  sess.run(init)
  for i in xrange(100):
    _,summary = sess.run([train_op,merged_summary], feed_dict)
    writer.add_summary(summary, i)

这时,打开tensorboard,在EVENTS可以看到loss随着i的变化了,如果看不到的话,可以在代码最后加上writer.flush()试一下,原因后面说明。

函数介绍

  • tf.summary.merge_all: 将之前定义的所有summary op整合到一起
  • FileWriter: 创建一个file writer用来向硬盘写summary数据,
  • tf.summary.scalar(summary_tags, Tensor/variable, collections=None): 用于标量的 summary
  • tf.summary.image(tag, tensor, max_images=3, collections=None, name=None):tensor,必须4维,形状[batch_size, height, width, channels],max_images(最多只能生成3张图片的summary),觉着这个用在卷积中的kernel可视化很好用.max_images确定了生成的图片是[-max_images: ,height, width, channels],还有一点就是,TensorBord中看到的image summary永远是最后一个global step
  • tf.summary.histogram(tag, values, collections=None, name=None):values,任意形状的tensor,生成直方图summary
  • tf.summary.audio(tag, tensor, sample_rate, max_outputs=3, collections=None, name=None)

解释collections参数:它是一个list,如果不指定collections, 那么此summary会被添加到f.GraphKeys.SUMMARIES中,如果指定了,就会放在的collections中。

FileWriter

注意:add_summary仅仅是向FileWriter对象的缓存中存放event data。而向disk上写数据是由FileWrite对象控制的。下面通过FileWriter的构造函数来介绍这一点!!!

tf.summary.FileWriter.__init__(logdir, graph=None, max_queue=10, flush_secs=120, graph_def=None)

Creates a FileWriter and an event file.
# max_queue: 在向disk写数据之前,最大能够缓存event的个数
# flush_secs: 每多少秒像disk中写数据,并清空对象缓存

注意

  1. 如果使用writer.add_summary(summary,global_step)时没有传global_step参数,会使scarlar_summary变成一条直线。
  2. 只要是在计算图上的Summary op,都会被merge_all捕捉到, 不需要考虑变量生命周期问题!
  3. 如果执行一次,disk上没有保存Summary数据的话,可以尝试下file_writer.flush()

小技巧

如果想要生成的summary有层次的话,记得在summary外面加一个name_scope

with tf.name_scope("summary_gradients"):
    tf.summary.histgram("name", gradients)

这样,tensorboard在显示的时候,就会有一个sumary_gradients一级目录。

tensorboard中distribution图的意义

https://stackoverflow.com/questions/35567132/meaning-of-histogram-on-tensorboard

参考资料 https://www.tensorflow.org/api_docs/python/summary/generation_of_summaries_#FileWriter.init

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年11月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本用法
  • 可视化参数
  • 函数介绍
  • FileWriter
  • 注意
  • 小技巧
  • tensorboard中distribution图的意义
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档