tensorflow tensorboard可视化
参考链接:
https://morvanzhou.github.io/tutorials/machine-learning/tensorflow/4-1-tensorboard1/ 莫烦tensorboard可视化教程
http://wiki.jikexueyuan.com/project/tensorflow-zh/how_tos/summaries_and_tensorboard.html tensorboard可视化学习
http://wiki.jikexueyuan.com/project/tensorflow-zh/how_tos/graph_viz.html tensorboard图表可视化
tensorBoard的输入是tensorflow保存summary data的日志文件。日志文件名的形式如:events.out.tfevents.1467809796.lei-All-Series 。
TensorBoard可读的summary data有scalar,images,audio,histogram和graph
1.对计算图进行可视化操作
(1)使用tf.name_scope()可以封装操作为一个结点,结点的名字即为参数名,结点打开可以看到具体操作
(2)使用name属性可以指定在计算图中的显示的名字
(3)需要使用 tf.summary.FileWriter() 将计算图保存到一个目录中,以方便后期在浏览器中可以浏览。 此方法中的第二个参数需要使用sess.graph , 因此我们需要把这句话放在获取session的后面。
(4)可视化全连接层:当选择用 tensorflow 中的激励函数(activation function)的时候,tensorflow会默认添加名称
全部代码:
import tensorflow as tf
def add_layer(X_data, in_size, out_size, activation_function=None):
with tf.name_scope('layer'):
with tf.name_scope('weights'):
W = tf.Variable(tf.random_normal([in_size, out_size], 0, 0.05), name='W')
with tf.name_scope('biases'):
b = tf.Variable(tf.zeros([out_size]), name='b')
with tf.name_scope('Wx_plus_b'):
wx_plus_b = tf.matmul(X_data, W) + b
if activation_function is None:
return wx_plus_b
else:
return activation_function(wx_plus_b)
sess = tf.InteractiveSession()
with tf.name_scope('inputs'):
X_data = tf.placeholder(tf.float32, [None, 784], name='x_in')
y_data = tf.placeholder(tf.float32, [None, 10], name='y_in')
y = add_layer(X_data, 784, 10, tf.nn.softmax)
with tf.name_scope('loss'):
J = tf.reduce_mean(-tf.reduce_sum(y_data * tf.log(y)), name='loss')
with tf.name_scope('train_step'):
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(J)
is_correct_prediction = tf.equal(tf.argmax(y, axis=1), tf.argmax(y_data, axis=1))
accuracy = tf.reduce_mean(tf.cast(is_correct_prediction, tf.float32))
tf.global_variables_initializer().run()
writer = tf.summary.FileWriter('winycg_logs/', sess.graph)
打开命令行界面:锁定到工程所在的目录,输入命令:tensorboard --logdir=winycg_logs(将计算图信息所存储的文件夹)
注:必须将命令行锁定到工程目录,如果直接采用命令:tensorboard --logdir=E:/PythonProject/winycg_logs,tensorboard将无法找到计算图信息
将显示的浏览器地址在谷歌浏览器上打开,打开GRAPHS栏目,显示生成的计算图
2.可视化训练过程中参数的变化
(1)使用tf.summary.histogram()绘制权重W,偏置b还有Wx+b等,因为这些参数都是多个值,可以绘制出参数值的分布
(2)使用tf.summary.scalar()绘制误差loss,学习速率learning_rate等,因为函数绘制的为折线图,且这些参数每次训练只有1个
如下为拟合一元二次方程的例子:
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
def add_layer(input, layer_name, in_size, out_size, activation_function=None):
with tf.name_scope(layer_name):
with tf.name_scope('weights'):
weights = tf.Variable(tf.random_normal([in_size, out_size]))
tf.summary.histogram(layer_name + '/weights', weights)
with tf.name_scope('biases'):
biases = tf.Variable(tf.zeros([out_size]))
tf.summary.histogram(layer_name + '/biases', biases)
with tf.name_scope('Wx_plus_b'):
Wx_plus_b = tf.matmul(input, weights) + biases
if activation_function is None:
output = Wx_plus_b
else:
output = activation_function(Wx_plus_b)
tf.summary.histogram(layer_name + '/output', output)
return output
X_data = np.linspace(-1, 1, 100, dtype=np.float32)[:, np.newaxis]
noise = np.random.normal(0, 0.05, (X_data.shape[0], 1))
y_data = np.square(X_data) + 0.5 + noise
X = tf.placeholder(tf.float32, [None, 1])
y = tf.placeholder(tf.float32, [None, 1])
hidden_layer = add_layer(X, 'hidden_layer', 1, 10, activation_function=tf.nn.relu)
output_layer = add_layer(hidden_layer, 'output_layer', 10, 1, activation_function=None)
with tf.name_scope('loss'):
loss = tf.reduce_mean(tf.square(y - output_layer))
tf.summary.scalar('loss', loss)
trainer = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
merged = tf.summary.merge_all() #汇总所有的操作
# 创建文件记录器,将计算图加入记录器
writer = tf.summary.FileWriter('logs/', sess.graph)
for i in range(1000):
sess.run(trainer, feed_dict={X: X_data, y: y_data})
if i % 50 == 0:
summary = sess.run(merged, feed_dict={X: X_data, y: y_data})
# 将汇总结果和循环步数写入日志文件
writer.add_summary(summary, i)
tf.summary.histogram()
计算图:
智能推荐
Tensorflow基础:TensorBoard可视化
为了更好的管理、调试和优化神经网络的训练过程,Tensorflow提供了一个可视化工具TensorBoard。TensorBoard可以有效地展示Tensorflow在运行过程中的计算图、各种指标随着时间的变化趋势以及训练中使用到的图像等信息。 TensorBoard简介 TensorBoard是Tensorflow的可视化工具,它可以通过Tensorflow程序运行过程中输出的日志文件可视化Te...
Tensorflow 可视化 Tensorboard 1
Tensorflow 自带的 tensorboard 去可视化我们所建造出来的神经网络是一个很好的学习理解方式。用最直观的流程图告诉你你的神经网络是长怎样,有助于你发现编程中间的问题和疑问。 这次只是简单展示tensorboard的简单使用。所以demo还是使用上上篇博客的demo,只是对一里面的一下层和必要参数进行了包装。这次展示的图是这样的。 图上有三层 我们的代码里面也是只有简单的三...
Tensorflow入门(3)——TensorBoard可视化
一、存储与可视化 运行后在指定目录产生了日志文件 在tensorboard查看方法 方法①:在Anaconda Prompt中先进入日志存放的目录(非常重要!!!)再运行TensorBoard,并将日志的地址指向程序日志输出的地址 命令:tensorboard --logdir=/path/log,启动服务的端口默认为6006;使用 --port 参数可以改编启动服务的端口 方法②:W...
TensorFlow笔记(3) TensorBoard可视化
TensorFlow笔记(3) TensorBoard可视化 1. TensorBoard简介 2. 运行TensorBoard 3. 常用API 1. TensorBoard简介 TensorBoard是TensorFlow的可视化工具 通过运行过程中输出的日志文件可视化程序的运行状态 可以帮助开发者方便的理解、调试、优化TensorFlow 程序 2. 运行TensorBoard 举个例子: ...
tensorflow学习之tensorboard可视化
tensorboard 功能 可视化的好帮手 Event: 展示训练过程中的统计数据(最值,均值等)变化情况 Image: 展示训练过程中记录的图像 Audio: 展示训练过程中记录的音频 Histogram: 展示训练过程中记录的数据的分布图 原理 在运行过程中,记录结构化的数据 运行一个本地服务器,监听6006端口 请求时,分析记录的数据,绘制 1.Histogram: 展示训练过程中记录的数...
猜你喜欢
TensorFlow-TensorBoard可视化
TensorFlow-TensorBoard可视化 (TensorFlow - TensorBoard Visualization) Advertisements 广告 Previous Page 上一页 Next Page 下一页 TensorFlow includes a visualization tool, which is called the TensorBoard. I...
tensorflow使用tensorboard进行可视化
tensorboard使用步骤 ①指定面板图上显示的变量 ②训练过程中将这些变量计算出来,输出到文件中 ③文件解析 tensorboard --logdir=文件名 在vggnet的代码上进心添加tensorboard语句 源代码 指定面板图上显示的变量 因为是标量,所以用tf.summary...
TensorFlow之如何可视化tensorboard(一)
一、可视化tensorboard 可视化tensorbod 其中,with tf.name_scope('')是用来在tensorboard中显示框框的 writer = tf.train.SummaryWriter(‘logs/’,sess.graph)是用来把整个框架(graph)到一个文...
冒泡排序,及改进方式,性能优化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变...
