TF01-02:使用Tensorboard可视化图
2018-10-16 本文已影响17人
杨强AT南京
本主题的内容:
- 使用Tensorboard
- 理解图
- 掌握graph与scalar可视化
一、图可视化
1.产生图数据
- 图在代码中描述好后,在执行会话环境中会自动存储,可以世界使用Session的属性graph获取,Session只有三个属性:graph与graph_ref,sess_str,Session的属性代码:
class SessionInterface(object): """Base class for implementations of TensorFlow client sessions.""" @property def graph(self): """The underlying TensorFlow graph, to be used in building Operations.""" raise NotImplementedError('graph') @property def sess_str(self): """The TensorFlow process to which this session will connect.""" raise NotImplementedError('sess_str')
- 可视化数据保存由tf.summary.FileWriter类实现,其构造器声明如下:
__init__( logdir, #存放数据的目录 graph=None, #需要存储的图对象数据 max_queue=10, flush_secs=120, graph_def=None, filename_suffix=None, session=None )
- 图数据获取实现代码如下
#coding=utf-8 import numpy as np import tensorflow as tf #1.描述图 m1=np.random.uniform(0,1,(4,3)) m2=np.random.uniform(0,1,(3,2)) r=tf.matmul(m1,m2) #2.图执行 session=tf.Session() #创建一个图数据IO写入器 writer=tf.summary.FileWriter("./graph",graph=session.graph) init_op= tf.global_variables_initializer() session.run(init_op) re=session.run(r) print(re) #关闭图写入器 writer.close()
- 产生的图数据结果
Graph保存后的文件
2.启动可视化
-
使用Tensorboard工具创建一个web应用服务,然后使用浏览器就可以得到可视化的图结构。
- Tensorboard在Tensorflow安装的时候会一起安装。
- Tensorboard使一个命令行工具,使用格式如下:
> tensorboard --logdir=Graph数据存放目录
-
可视化启动例子:
启动图可视化web应用服务
-
使用浏览器访问
注意:端口是6006,URL是:http://127.0.0.1:6006/
使用浏览器访问图可视化服务 -
可视化图元素说明
可视化元素说明
-
可视化数据
Tensorboard的数据类型有很多可视化数据类型
常用的有:scalars,distributions,histograms 等 -
可视化刷新设置
设置刷新频率与分页限制
二、数据标量可视化
1. 确定标量数据
#1.scalar数据
rd1=tf.Variable(tf.random_uniform([],-1.0,1.0))
tf.summary.scalar("rd1",rd1)
rd2=tf.Variable(tf.random_uniform([],-1.0,1.0))
tf.summary.scalar("rd2",rd2)
【注意】其中使用随机函数产生随机数,其中只能使用标量,所以函数的第一个参数设置为[],表示标量。如果使用向量,运行参数肯定不匹配。
2. 合并标量数据
#2.数据合并
me=tf.summary.merge_all()
3. 计算标量数据
#3.计算合并数据
data= session.run(me)
4. 存储标量数据
#
#4.合并数据用IO写入文件
writer.add_summary(data,i)
5. 完整代码
#coding=utf-8
import numpy as np
import tensorflow as tf
#1.scalar数据
rd1=tf.Variable(tf.random_uniform([],-1.0,1.0))
tf.summary.scalar("rd1",rd1)
rd2=tf.Variable(tf.random_uniform([],-1.0,1.0))
tf.summary.scalar("rd2",rd2)
#2.数据合并
me=tf.summary.merge_all()
#2.图执行
session=tf.Session()
#创建一个图数据IO写入器
writer=tf.summary.FileWriter("./scalar",graph=session.graph)
init_op= tf.global_variables_initializer()
session.run(init_op)
#写100个随机变量
for i in range(100):
#3.计算合并数据
data= session.run(me)
#4.合并数据用IO写入文件
writer.add_summary(data,i)
#关闭图写入器
writer.close()
6. 可视化效果
- 使用tensorboard工具,启动web app服务后,可以看到如下可视化效果。
标量数据可视化结果
更多复杂的情况,可以参考后面神经网络中更为复杂的实现。
【资源】
代码列表:
- t02_graph.py
- t02_scalar.py
文件下载:【 下载 】