tensorflow使用tensorboard实现数据可视化

时间:2022-01-26 00:03:13

网上关于这方面的教程很多,不过都偏向与如何整理图,就是通过增加命名域使得图变得好看.下面主要讲解如何搭建起来tensorboard.

系统环境:ubuntu14.04,python2.7,tensorflow-0.11

创建summary op

1.需要在图中创建summary的操作.常用的summary操作有tf.summary.scalar和tf.summary.histogram. 
注:图中必须存在summary节点.不然会报错,如下图报错 
tensorflow使用tensorboard实现数据可视化

merge合并操作

2.调用tf.summary.merge_all(),原因如下.

在TensorFlow中,所有的操作只有当你执行,或者另一个操作依赖于它的输出时才会运行。我们刚才创建的这些节点(summary nodes)都围绕着你的图像:没有任何操作依赖于它们的结果。因此,为了生成汇总信息,我们需要运行所有这些节点。这样的手动工作是很乏味的,因此可以使用tf.summaries.merge_all\来将他们合并为一个操作。 
然后你可以执行合并命令,它会依据特点步骤将所有数据生成一个序列化的Summary protobuf对象。最后,为了将汇总数据写入磁盘,需要将汇总的protobuf对象传递给tf.train.Summarywriter。

创建writer对象

summary_writer = tf.summary.FileWriter('/tmp/mnist_logs',sess.graph)
  
  
  • 1
  • 1

运行

和正常运行训练过程是一样的.对于placeholder的图要带上feed参数.

summary_str = sess.run(merged_summary_op,feed_dict={x: batch[0], y_: batch[1]});
summary_writer.add_summary(summary_str, i);
  • 1
  • 2
  • 1
  • 2

最后帖上我的代码

#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_');

#initialize weights and bias;
#with tf.name_scope('input_weight'):
W = tf.Variable(tf.zeros([784,10]));

#with tf.name_scope('input_bias'):
b = tf.Variable(tf.zeros([10]),name = 'input_bias');

#Predict class and loss function
#with tf.name_scope('y'):
y = tf.nn.softmax(tf.matmul(x,W) + b)
tf.summary.histogram('y',y);
#cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(y, y_));
#cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels = y, logits = y_))
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
tf.summary.scalar('loss_function', cross_entropy)

#train_step
#train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy);
#train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)


#####optimization:梯度下降
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)



#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();





########create session
#sess = tf.Session();
#init op
init = tf.global_variables_initializer();
sess.run(init);
####TensorBoard
merged_summary_op = tf.summary.merge_all()
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:
correct_prediction = tf.equal(tf.argmax(y, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float32"))
print "Setp: ", i, "Accuracy: ",sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})




########evaluate
correct_prediction = tf.equal(tf.argmax(y,1), tf.argmax(y_,1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32))
print(accuracy.eval(session=sess,feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84

打开tensorboard

在终端下运行

tensorboard --logdir='/tmp/mnist_logs'//目录是我在创建writer的时候设定的.
  
  
  • 1
  • 1

然后打开浏览器运行地址:0.0.0.0:6006

结果:

tensorflow使用tensorboard实现数据可视化

遇到的没有解决的问题:jupyter中运行的时候第一次没有错误.第二次就报错.到目前为止没有解决.问题地址:https://github.com/tensorflow/tensorflow/issues/225

tensorflow使用tensorboard实现数据可视化

目前已经不使用jupyter,改用sublime+shell.

如果搭建成功没有问题啦.就可以试着使用优化图的方法了.

http://url.cn/491ViLR
http://url.cn/491a12u
http://url.cn/491JDsT
http://url.cn/491JE4p
http://url.cn/491NWHA
http://url.cn/491a3FD
http://url.cn/491a3dG
http://url.cn/491dyMy
http://url.cn/491VlVp
http://url.cn/491a4eA
http://url.cn/491JFmi
http://url.cn/491JFy3
http://url.cn/491dzo2
http://url.cn/491JGOY


http://p.t.qq.com/longweibo/index.php?lid=10166140779583006505
http://p.t.qq.com/longweibo/index.php?lid=18164533782217516841
http://p.t.qq.com/longweibo/index.php?lid=12039638396367824681
http://p.t.qq.com/longweibo/index.php?lid=10094083408883377961
http://p.t.qq.com/longweibo/index.php?lid=17299842928640288553
http://p.t.qq.com/longweibo/index.php?lid=6995607028461233961
http://p.t.qq.com/longweibo/index.php?lid=2311863476125460265
http://p.t.qq.com/longweibo/index.php?lid=7211779930834102057
http://p.t.qq.com/longweibo/index.php?lid=2816266741765138217
http://p.t.qq.com/longweibo/index.php?lid=8941162282233653033
http://p.t.qq.com/longweibo/index.php?lid=8292643987431909161
http://p.t.qq.com/longweibo/index.php?lid=3969188392400873257
http://p.t.qq.com/longweibo/index.php?lid=12039638976188409641
http://p.t.qq.com/longweibo/index.php?lid=16579267456412444457