TensorBoard的使用

本文介绍TensorBoard的七大可视化功能,并通过手写数字识别实例演示如何使用TensorBoard进行模型训练过程的监控,包括标量、直方图、图像、计算图等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TensorBoard 是 TensorFlow 自带的一个强大的可视化工具,也是一个 Web 应用程序套件。TensorBoard 目前支持 7 种可视化,即 SCALARS、IMAGES、AUDIO、GRAPHS、DISTRIBUTIONS、HISTOGRAMS 和 EMBEDDINGS。这 7 种可视化的主要功能如下。
● SCALARS:展示训练过程中的准确率、损失值、权重/偏置的变化情况。
● IMAGES:展示训练过程中记录的图像。
● AUDIO:展示训练过程中记录的音频。
● GRAPHS:展示模型的数据流图,以及训练在各个设备上消耗的内存和时间。
● DISTRIBUTIONS:展示训练过程中记录的数据的分布图。
● HISTOGRAMS:展示训练过程中记录的数据的柱状图。
● EMBEDDINGS:展示词向量(如 Word2vec)后的投影分布。

这里,我们运行手写数字识别的入门例子,如下: 
python tensorflow-1.1.0/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py 
然后,打开 TensorBoard 面板: 
tensorboard ––logdir=/tmp/mnist/logs/mnist_with_summaries 
这时,输出: 
Starting TensorBoard 39 on port 6006 
(You can navigate to http://192.168.0.101:6006) 
我们就可以在浏览器中打开 http://192.168.0.101:6006,查看面板的各项功能。 

TensorBoard

scalars:标量显示
tf.summary.scalar

histograms:变量显示
tf.summary.histogram

images:展示训练过程中记录的图像
tf.summary.image

graphs:计算图显示
tf.summary.FileWritter(path,sess.graph)

distribution:变量分布
tf.summary.distribution

embeddings:变量embeddings
加载ckpt文件,但是变量也要保存

audio:展示训练过程中记录的音频
tf.summary.audio

text:展示文本输入类型为Tensor
tf.summary.text

使用案例:

#coding:utf-8


#######softmax

import tensorflow as tf
import numpy as np 
from tensorflow.examples.tutorials.mnist import input_data


######prepare data
mnist = input_data.read_data_sets('MNIST_data/',one_hot = True);


#######create the graph
x = tf.placeholder(tf.float32,shape = [None,784],name = 'x');
y_ = tf.placeholder(tf.float32,shape = [None,10],name = 'y_');
W = tf.Variable(tf.zeros([784,10]));
b = tf.Variable(tf.zeros([10]),name = 'input_bias');
y = tf.nn.softmax(tf.matmul(x,W) + b)
tf.summary.histogram('y',y);
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
tf.summary.scalar('loss_function', cross_entropy)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float32"))
tf.summary.scalar('accuracy', accuracy)
merged_summary_op = tf.summary.merge_all()



#Cannot evaluate tensor using `eval()`: No default session is registered. 
#Use `with sess.as_default()` or pass an explicit session to `eval(session=sess)`
#set sess as default
sess = tf.InteractiveSession();
init = tf.global_variables_initializer();
sess.run(init);
if tf.gfile.Exists("/tmp/mnist_logs"):
    tf.gfile.DeleteRecursively("/tmp/mnist_logs");
summary_writer = tf.summary.FileWriter('/tmp/mnist_logs',sess.graph)

#train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
for i in range(1000):
    batch = mnist.train.next_batch(100);
    sess.run(train_step,feed_dict={x: batch[0], y_: batch[1]});
    summary_str = sess.run(merged_summary_op,feed_dict={x: batch[0], y_: batch[1]});
    summary_writer.add_summary(summary_str, i);

    if i % 50 == 0:
        print "Setp: ", i, "Accuracy: ",sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})

print(accuracy.eval(session=sess,feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值