欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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,可以得到某次运行的信息,

TensorBoard可视化

选择Color栏中的Struture,Device,Compute time,Memory等选项,可以查看每个节点的结构,在那个设备上运行,运行时间及空间等。

监控指标可视化

TensorBoard中,监控指标有SCALARS,IMAGES,HISTOGRAMS和DISTRIBUTIONS等。
TensorBoard可视化

SCALARS

SCALARS是指标量,一般记录某个变量随着step的变化而变化。

用法:tf.summary.scalar(name,value)
TensorBoard可视化

IMAGES

可视化输入的图像

用法:tf.summary.image(name,input_image,output_max)

其中第三个参数是指输出到TensorBoard中图像的数目,一般取最后一轮的图像输出。
TensorBoard可视化

GRAPHS

一般在初始化前调用

summary_writer = tf.summary.FileWriter(summary_dir,sess.graph)

将计算图写入
TensorBoard可视化

DISTRIBUTIONS/HISTOGRAMS

显示张量在每个step的数值分布。

两者的区别只是观察的角度不同。

DISTRIBUTIONS

TensorBoard可视化

HISTOGRAMS

TensorBoard可视化