tensorflow之可视化工具tesorboard的简单使用
来源:互联网 发布:log4j sql日志级别 编辑:程序博客网 时间:2024/06/17 05:25
一般在训练神经网络的时候,参数很多,也很复杂,有时我们就想把训练过程的一些数据进行可视化,方便我们调参。比如,如果我们可以看到神经网络训练过程的训练集的loss变化情况以及测试集的loss变化情况,通过这两条曲线我们就可以大致判断我们的网络是否已经过拟合了。所以说,可视化对我们调参的帮助还是挺大的。而深度学习框架tensorflow就自带了一款可视化工具tensorboard来方便 TensorFlow 程序的理解、调试与优化。现在我们就来看看它的使用方式。
tensorboard运行方式
TensorBoard 是通过读取 TensorFlow 的事件文件来运行。文件大概是长这个样子:
如何得到这样的文件
假如我现在在训练一个简单的神经网络,我想要将损失函数的数据记录下来:
cost = -tf.reduce_mean(10*Y * tf.log(hypothesis) + (1 - Y) * tf.log(1 - hypothesis))tf.summary.scalar('cost',cost)
tf.summary.scalar()函数就是将想要记录下来的节点作为参数传给它(第二个参数),第一个参数是起了个名字而已。所以,如果还有其它的节点要记录下来,就可以同样使用这个函数。这说明你想把这个节点的运算结果保存下来,但是在tensorflow中,如果不使用tf.Session().run()的话,是不会执行的任何计算的。但是如果我想要记录的节点有很多个,每一个都手动去使用run来运行的话很麻烦。因此可以使用tf.merge_all_summaries()合并为一个操作。
# 收集所有的数据merged = tf.summary.merge_all()
接下来就要指明你要把数据存放在哪里了。
# 指明数据保存路径train_writer = tf.summary.FileWriter("../log/train", sess.graph)
现在,就可以通过运行神经网络并把数据保存下来了!
#计算结果train_result= sess.run(merged,feed_dict = {X:x_data, Y:y_data})#将结果写入磁盘train_writer.add_summary(train_result,epoch)
完整的代码如下:
import pandas as pdimport numpy as npimport tensorflow as tffrom sklearn import preprocessing as ppfrom sklearn import metricsfrom sklearn.metrics import roc_auc_score as aucfrom dataPreprocessing import *###---------build modelX = tf.placeholder(tf.float32,[None, x_dim], name='X')Y = tf.placeholder(tf.float32,[None, 1], name='Y')W1 = tf.Variable(tf.random_normal([x_dim,64]), name='weight1')W2 = tf.Variable(tf.random_normal([64, 32]), name='weight2')W3 = tf.Variable(tf.random_normal([32, 1]), name='weight3')b1 = tf.Variable(tf.random_normal([1,64]), name='bias1')b2 = tf.Variable(tf.random_normal([1,32]), name='bias2')b3 = tf.Variable(tf.random_normal([1,1]), name='bias3')Wx_b1 = tf.matmul(X, W1) + b1#Wx_b1 = tf.nn.dropout(Wx_b1, keep_prob=1)layer1 = tf.sigmoid(Wx_b1)Wx_b2 = tf.matmul(layer1, W2) + b2#Wx_b2 = tf.nn.dropout(Wx_b2, keep_prob=1)layer2 = tf.sigmoid(Wx_b2)hypothesis = tf.sigmoid(tf.matmul(layer2, W3) + b3)cost = -tf.reduce_mean(Y * tf.log(hypothesis) + (1 - Y) * tf.log(1 - hypothesis))train = tf.train.AdamOptimizer(learning_rate=0.01).minimize(cost)#存储costtf.summary.scalar('cost',cost)# 收集所有的数据merged = tf.summary.merge_all()# 将数据写入到tensorboard中train_writer = tf.summary.FileWriter("../log/train", sess.graph)sess = tf.Session()sess.run(tf.global_variables_initializer())for epoch in range(201): pred,cost_val,_ = sess.run([hypothesis,cost,train],feed_dict = {X:x_data,Y:y_data}) if epoch % 2 ==0: #计算结果 print('saving cost data') train_result= sess.run(merged,feed_dict = {X:x_data, Y:y_data}) #将结果写入磁盘 train_writer.add_summary(train_result,epoch)
一般来说,如果每一次迭代都把数据保存下来,那么等到训练完之后,数据可能会很多,一般是迭代100次或者几百次才记录一次数据。这样的话比较省硬盘。
阅读全文
0 0
- tensorflow之可视化工具tesorboard的简单使用
- TensorFlow的可视化工具
- 06:Tensorflow的可视化工具Tensorboard的初步使用
- Git可视化工具SourceTree的简单使用
- 从零开始使用TensorFlow可视化工具Tensorboard
- Tensorflow可视化----Tensorboard的使用
- TensorFlow实战15:TensorBoard的使用(tensorflow的可视化工具)
- tensorflow 1.2.0 中使用可视化tensorboard工具
- MySQL_GUI_Tools可视化工具的使用!!
- oracle可视化工具的使用
- Tensorflow可视化工具Tensorboard使用方法
- TensorFlow可视化工具-TensorBoard上手
- TensorFlow自带的一个强大的可视化工具tensorboard
- 深入浅出的TensorFlow可视化工具TensorBoard用法教程(一)
- 深入浅出的TensorFlow可视化工具TensorBoard用法教程(二)
- DL01-史上最简单的TensorFlow小例可视化
- Tensorflow的可视化操作
- zookeeper的简单安装以及基于intellij idea的可视化工具的使用
- Unix-Linux编程实践教程——第十三章
- 字符串截取(记一次工作总结)
- SpringMVC实现文件上传下载
- JZ2440 第6章 存储控制器
- ajax提交表单和文件上传
- tensorflow之可视化工具tesorboard的简单使用
- ACM学习总结之A+B问题
- 面试编程题3:元素去重
- IDENTITY_INSERT
- 浅谈JavaScript异步加载的三种方式——async和defer、动态创建script
- Single Image Haze Removal(图像去雾)-CVPR’09 Best Paper
- 洛谷U14200 Changing 题解 【杨辉三角】
- 作业
- LA4670 AC自动机