tensorboard窥视
运行神经网络时,跟踪网络参数,以及输入输出是很重要的,可据此判断模型是否在学习,损失函数的值是否在不断减小。Tensorboard通过可视化方法,用于分析和调试网络模型。
使用tensorboard的流程:
1、构建计算流图,即完成代码部分
2、为要观察的操作节点添加summary
3、使用sess.run()启动计算流图
4、在anaconda prompt下启动tensorboard,如:tensorboard --logdir=***,其中***表示存放log的目录
5、在浏览器下查看可视化结果
- tf.summary.scalar(name, tensor, collections=None):记录标量,如loss,accuracy,learning_rate等
- tf.summary.histogram(name, tensor, collections=None):记录权重、输出、梯度的分布情况
- Tf.summary.image(name, tensor, max_outputs=3, collections=None): 记录图片数据
- Tf.summary.audio(name, tensor, sample_rate, max_outputs=3, collections=None): 记录音频数据
- Tf.summary.text(name, tensor, collections=None): 记录文本数据
- tf.summary.merge_all/tf.summary.merge(inputs, collections=None, name=None):合并所有/指定变量
- tf.summary.FileWriter:写入summary文件
import tensorflow as tf
import numpy as np
import numpy as np
# 输出数字0-9
one = tf.constant(1.0)
digit_value = tf.Variable(0.0, name='digit_value')
new_digit_value = tf.add(digit_value, one)
step = tf.assign(digit_value, new_digit_value)
digit_value = tf.Variable(0.0, name='digit_value')
new_digit_value = tf.add(digit_value, one)
step = tf.assign(digit_value, new_digit_value)
for value in [digit_value]:
tf.summary.scalar(value.op.name, value) # 添加要显示在tensorboard的标量
summaries = tf.summary.merge_all()
with tf.Session() as sess:
summary_writer = tf.summary.FileWriter('log', sess.graph) # 保存数据流图到文件夹log中
sess.run(tf.global_variables_initializer())
for i in range(10):
summary_writer.add_summary(sess.run(summaries)) # 添加summaries图表到tensorboard中
print(sess.run(digit_value))
sess.run([new_digit_value, step])
summary_writer = tf.summary.FileWriter('log', sess.graph) # 保存数据流图到文件夹log中
sess.run(tf.global_variables_initializer())
for i in range(10):
summary_writer.add_summary(sess.run(summaries)) # 添加summaries图表到tensorboard中
print(sess.run(digit_value))
sess.run([new_digit_value, step])
显示效果: