TensorBoard可视化
程序员文章站
2022-07-06 22:02:38
...
基本用法
import tensorflow as tf
input1 = tf.constant([1.,2.,3.],name='input1')
input2 = tf.Variable(tf.ran dom_uniform([3]),name='input2')
output = input1 + input2
writer = tf.summary.FileWriter('./log',tf.get_default_graph())
writer.close()
运行以下命令:
tensorboard –logdir=log
在浏览器打开:localhost:6006
获取在某一次运行时所消耗的时间和内存
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
writer = tf.summary.FileWriter('./log',tf.get_default_graph())
for i in range(10000):
xs,ys = mnist.train.next_batch(100)
if i % 1000 == 0:
#配置运行时需要记录的信息
run_options = tf.RunOptions(trace_level=tf.RunOptions.FULL_TRACE)
#运行时记录运行信息的proto
run_metadata = tf.RunMetadata()
#将两者传入,获得该次运行时所有节点所消耗时间和内存信息
_,loss_val, = sess.run([train_step,loss],feed_dict={x:xs,y_:ys},options=run_options,run_metadata=run_metadata)
#将运行信息写入日志文件
writer.add_run_metadata(run_metadata,'step%d'%i)
print('step : {},loss : {}'.format(i, loss_val))
else:
_,loss_val,accuracy = sess.run([train_step,loss,precision],feed_dict={x:xs,y_:ys})
if i % 100 == 0:
print('step : {},loss : {},accuracy : {}'.format(i,loss_val,accuracy))
writer.close()
打开tensorboard,点击左侧的Session runs,可以得到某次运行的信息,
选择Color栏中的Struture,Device,Compute time,Memory等选项,可以查看每个节点的结构,在那个设备上运行,运行时间及空间等。
监控指标可视化
TensorBoard中,监控指标有SCALARS,IMAGES,HISTOGRAMS和DISTRIBUTIONS等。
SCALARS
SCALARS是指标量,一般记录某个变量随着step的变化而变化。
用法:tf.summary.scalar(name,value)
IMAGES
可视化输入的图像
用法:tf.summary.image(name,input_image,output_max)
其中第三个参数是指输出到TensorBoard中图像的数目,一般取最后一轮的图像输出。
GRAPHS
一般在初始化前调用
summary_writer = tf.summary.FileWriter(summary_dir,sess.graph)
将计算图写入
DISTRIBUTIONS/HISTOGRAMS
显示张量在每个step的数值分布。
两者的区别只是观察的角度不同。