tensorflow学习之tensorboard可视化

标签: tensorflow  tensorboard

tensorboard

功能

可视化的好帮手

  • Event: 展示训练过程中的统计数据(最值,均值等)变化情况
  • Image: 展示训练过程中记录的图像
  • Audio: 展示训练过程中记录的音频
  • Histogram: 展示训练过程中记录的数据的分布图

原理

  • 在运行过程中,记录结构化的数据
  • 运行一个本地服务器,监听6006端口
  • 请求时,分析记录的数据,绘制
1.Histogram: 展示训练过程中记录的数据的分布图

with tf.name_scope('W'):
    W = tf.Variable(tf.zeros([784, 10]) , name = 'W')

在tensorflow程序中的变量或者常量加上name=‘xxx’,with tf.name_scope('xxx'):是为了让它下面的包含在一个大的框里,这样在模型复杂的时候会看起来更清晰。

然后,我们需要把graph写到文件里面,通过tensorboard来调用显示

writer = tf.summary.FileWriter('logs' , sess.graph)

需要注意的是,这是新版本的写法,旧版本是tf.train.SummaryWriter,如果用的tensorflow 1.0版本,那么用旧的方法会报错

运行程序,会在logs文件夹中保存此次的events。

然后将shell定位到当前文件夹中执行:

tensorboard --logdir = logs

会出现下面的信息

以前我们是复制这个网址在浏览器打开,但是我发现这个方式行不通了,不知道是我方法的问题,还是浏览器的问题,所以我们用另一种方式。

打开你的浏览器,输入localhost:6006,回车。这时tensorboard就在你的浏览器中启动了


2.histograms显示,scalars显示

在需要查看的变量下面加上:

#histograms
tf.summary.histogram('W' , W)
#scalars
tf.summary.scalar('loss' , cross_entropy)

然后,我们需要将这些即时数据合并到一个操作(op)中:

summary_op = tf.summary.merge_all()

最后,在每次迭代时都要运行summary_op,并把最新的即时数据写入事件文件中:

for i in range(1000):
	batch_xs, batch_ys = mnist.train.next_batch(100)
	summary_str = sess.run(summary_op , feed_dict={x:batch_xs , y_:batch_ys})
	writer.add_summary(summary_str , i)
	train_step.run({x: batch_xs, y_: batch_ys})

执行程序,生成新的events文件在logs中,然后同样执行:

tensorboard --logdir=logs

这里有一点是要注意的就是,我的tensorboard是pip安装的,如果你的不是,那么tensorboard的启动方式变

python tensorflow/tensorboard/tensorboard.py --logdir=path

并在浏览器中输出localhost:6006打开tensorboard查看:



最后贴上完整的代码(softmax分类mnist数据集):

"""A very simple MNIST classifier.

See extensive documentation at
http://tensorflow.org/tutorials/mnist/beginners/index.md
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

# Import data
#from tensorflow.examples.tutorials.mnist import input_data
import input_data
import tensorflow as tf

mnist = input_data.read_data_sets("Mnist_data/", one_hot=True)

sess = tf.InteractiveSession()

# Create the model
x = tf.placeholder(tf.float32, [None, 784] , name = 'input_x')
W = tf.Variable(tf.zeros([784, 10]) , name = 'W')
tf.summary.histogram('W' , W)
b = tf.Variable(tf.zeros([10]) , name = 'b')
tf.summary.histogram('b' , b)
y = tf.nn.softmax(tf.matmul(x, W) + b , name = 'y_out')

# Define loss and optimizer
y_ = tf.placeholder(tf.float32, [None, 10] , name = 'input_y')
with tf.name_scope('loss'):
	cross_entropy = -tf.reduce_sum(y_ * tf.log(y))
tf.summary.scalar('loss' , cross_entropy)

summary_op = tf.summary.merge_all()

writer = tf.summary.FileWriter('logs' , sess.graph)
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)

# Train
tf.initialize_all_variables().run()
for i in range(1000):
	batch_xs, batch_ys = mnist.train.next_batch(100)
	summary_str = sess.run(summary_op , feed_dict={x:batch_xs , y_:batch_ys})
	writer.add_summary(summary_str , i)
	train_step.run({x: batch_xs, y_: batch_ys})

# Test trained model
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({x: mnist.test.images, y_: mnist.test.labels}))

OK~

版权声明:本文为gaohuazhao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gaohuazhao/article/details/72896944

智能推荐

TensorFlow之如何可视化tensorboard(二)

该文章在tensorboard上显示训练过程,包括权重、偏置、输出、损失、的变化过程。 来源 相关代码: 相关解释: 给所有训练图合并  合并打包。 tf.merge_all_summaries() 方法会对我们所有的 summaries 合并到一起. 因此在原有代码片段中添加: 图像显示:   损失函数值的变化,横坐标表示迭代步数,纵坐...

Tensorflow2.0之可视化界面(tensorboard)

Tensorflow2.0之可视化界面 可视化: 在网络训练的过程中,通过Web 端远程监控网络的训练进度,可视化网络的训练结果,对于提高开发效率和实现远程监控是非常重要的。TensorFlow 提供了一个专门的可视化工具,叫做TensorBoard,它通过TensorFlow 将监控数据写入到文件系统,并利用Web后端监控对应的文件目录,从而可以允许用户从远程查看网络的监控数据。TensorBo...

tensorflow 2.0 随机梯度下降 之 tensorboard可视化

6.10 可视化 工具 TensorBoard 工作原理 完整代码 工具 TensorBoard Visdom TensorBoard installation pip install tensorboard Curves (accuary, loss) images visualization 工作原理 监听目录 (listen logdir) 建立 summary 实例 (build summ...

TensorFlow学习笔记(八)——TensorBoard可视化

前言:        训练神经网络十分复杂,有时需要几天甚至几周的时间。为了更好的管理、调试和优化神经网络的训练过程,TensorFlow提供了一个可视化工具TensorBoard。本文将介绍TensorFlow 的可视化工具 TensorBoard。TensorBoard 是 TensorFlow 自带的工具,不需要额外的安装过程。虽然TensorBoar...

TensorFlow学习--TensorBoard神经网络可视化

本机:[ubuntu16.04 + Pycharm + python2.7 + tensorflow1.3.0 ] TensorBoard是TensorFlow的一套可视化工具,通过读取 TensorFlow 的事件文件来运行. 一般是先创建要汇总的图(graph),然后选择需要在那些节点(op)进行汇总(summary)操作. 例子(具体见代码注释): 输出: 打开ubuntu终端,输入: 可得...

猜你喜欢

TensorFlow学习笔记(8) Tensorboard可视化

文章目录 Tensorboard简介 TensorFlow计算图可视化 命名空间与Tensorboard图上节点 节点信息 监控指标可视化 Tensorboard简介 Tensorboard是Tensorflow的可视化工具,通过tf程序输出的日志文件来可视化程序的运行状态。下面的代码完成了Tensorboard日志输出的功能。 然后在命令行中输入tensorboard --logdir tens...

TensorFlow学习笔记——利用tensorboard进行可视化

0 导读 作为研究狗,学界普遍认为pytorch会比tensorflow代码简介,其实这些都只不过是工具罢了,好好啃通核心思想,应该大同小异。回到tensorboard,验证一个算法的效果好坏以及优化的潜能,其中一个常见的方法是,我们必须得关注loss的收敛情况,当面对大量的loss、acc时,单纯的文本数字并不能直观决策出模型的优劣。因此,我们非常有必要对loss、acc等参数绘图。然而,Ten...

TensorFlow2.0学习笔记---tensorboard可视化

1.实时查看参数变化情况 1.1 首先在pacharm程序文件夹里创建一个空文件夹用来存放tensorboard的记录文件,并在代码中实例化一个记录器: 注意此段代码要放在训练过程之前,括号中的引号内要放记录文件的全地址,地址前面加r 1.2 接下来,当需要记录训练过程中的参数时,通过 with 语句指定希望使用的记录器,并对需要记录的参数(一般是 scalar)运行 tf.summar...

冒泡排序,及改进方式,性能优化400%>>>附图解加源码

首先源码附上,源码中带有注释,看不懂没关系,源码后面附带图解,最后附上代码效率提升图 源码如下: 方案一:其实实现很简单,两层循环,每次内层迭代出最大的一个值,将其放入数组最后一个位置,外层循环的末端便往前移一位。其原理如下图 方案一代码块: 方案二:优化改进 仔细观察上面的图,我们不难发现当迭代到图下这样的情况时,其实已经全排序好了,但是我们还是需要对它进行1,2,3,4,5,6的迭代,这些情况...

css3常用选择器

先介绍一下基本选择器,如下几种 *:通配符。选择页面的所有元素 E:元素选择器。对页面的一些元素进行选择,如p,div,li等 .class:类选择器 #id:id选择器。一个Id在一个页面中只能选择,这是和类选择器的区别 E F:后代选择器。如ul li。选中ul下的li E>F:子元素选择器。如下,可以用 h1 > strong {color:red;}使h1的子元素strong变...