您的位置:首页 > 其它

TensorBoard的使用

2018-03-07 14:24 344 查看
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}))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  TensorFlow TensorBoard