Tensorflow—可视化工具TensorBoard的用法
TensorBoard是一个可视化工具,它可以用来展示网络图、张量的指标变化、张量的分布情况等。特别是在训练网络的时候,我们可以设置不同的参数(比如:权重W、偏置B、卷积层数、全连接层数等),使用TensorBoader可以很直观的帮我们进行参数的选择。
使用步骤
#第一步:(添加想要可视化对象)
tf.summary.scalar(name='tmp sum x', tensor=sum_x)
#第二步:(合并所有的summary可视化输出操作)
summary = tf.summary.merge_all()
#第三步:(构建一个日志输出对象)
writer = tf.summary.FileWriter(logdir='./models/09', graph=sess.graph)
#第四步:(运行summary)
r, summary_ = sess.run([y, summary], feed_dict={input_x: data})
#第五步:(将可视化模型保存到磁盘中)
writer.add_summary(summary=summary_, global_step=step)
#第六步:(关闭输出对象)
writer.close()
下面是完整代码:
import tensorflow as tf
with tf.Graph().as_default():
# 一、图的构建
with tf.name_scope('n1'):
# a. 定义一个占位符。表示一个数字
input_x = tf.placeholder(dtype=tf.float32, shape=None, name='x')
# b. 定义一个变量,用于表示阶乘的值
sum_x = tf.Variable(dtype=tf.float32, initial_value=1.0, name='sum_x')
# 定义一个可视化的输出操作
tf.summary.scalar(name='tmp sum x', tensor=sum_x)
with tf.name_scope('n2'):
# /GPU:0表示在所有可运行的GPU上的而言,第一个GPU核
# c. 做一个乘法操作
tmp = sum_x * input_x
# 将tmp这个tensor中的值赋值为sum_x这个tensor
assign_op = tf.assign(ref=sum_x, value=tmp)
# d. 做一个阶乘的累加值乘以3的操作
with tf.control_dependencies(control_inputs=[assign_op]):
# 当前with语句块中的代码执行之前,一定会先触发control_inputs中给定的Tensor操作
y = sum_x * 3
# 定义一个可视化的输出操作
tf.summary.scalar('y', y)
# 二、图的执行
with tf.Session(config=tf.ConfigProto(log_device_placement=True,
allow_soft_placement=True)) as sess:
# 变量初始化
sess.run(tf.global_variables_initializer())
# 合并所有的summary可视化输出操作
summary = tf.summary.merge_all()
# 构建一个日志输出对象
writer = tf.summary.FileWriter(logdir='./models/09', graph=sess.graph)
# 阶乘值计算
n = 5
step = 1
for data in range(1, n + 1):
r, summary_ = sess.run([y, summary], feed_dict={input_x: data})
print(r)
# 将可视化输出的相关信息输出到磁盘
writer.add_summary(summary=summary_, global_step=step)
step += 1
# 关闭输出对象
writer.close()
在run该代码之后,在指定的文件夹中会出现一个持久化的可视化模型
然后,我们在cmd中切换与该文件夹所在的磁盘(比如,cmd路径是C:盘,但是event模型存放的路径是D:盘,这样会报错),同时,要求所有路径不能出现中文或者空格,然后我们在cmd中输入:
tensorboard --logdir 你存放event文件的路径(文件夹的路径,不是文件路径)
'''
eg:
tensorboard --logdir C:\Users\user\Desktop\05_dp\tensorflow14\0515\models\25\graph --host=127.0.0.1
'''
有些时候,会打不开,如果这样的话,就在后面加一个**–host=127.0.0.1**,这样就可以啦~
效果图