【Tensorflow】tensorboard小结
every blog every motto: What doesn’t kill you makes you stronger.
0. 前言
废话: 近一段时间都没怎么写博客了,大概是在摸鱼吧。(划水快乐,:))
本节主要对两种tenorboard的使用进行小结,并对多个events.out.tfevent文件无法在同一张图中显示,给出了解决办法。
说明: 后续可能会增补
1. 正文
什么是tensorboard?
可以简单理解为保存了训练过程中的accuracy 和loss 的变化情况
说明:
1.不仅限于此,还能保存计算图等信息。
2. 本文主要将对accuracy 和 loss的保存
1.1 方法一:回调函数
保存为.h5格式文件
1.1.1 保存
我们可以在回调函数中设置。部分代码如下:
# 回调函数 Tensorboard(文件夹)\earylystopping\ModelCheckpoint(文件名)
logdir = os.path.join("callbacks")
print(logdir)
if not os.path.exists(logdir):os.mkdir(logdir)
# 文件名
output_model_file = os.path.join(logdir,"fashion_mnist_model.h5")callbacks = [keras.callbacks.TensorBoard(logdir),keras.callbacks.ModelCheckpoint(output_model_file,save_best_only=True),keras.callbacks.EarlyStopping(patience=5,min_delta=1e-3),
]# 开始训练
history = model.fit(x_train_scaled,y_train,epochs=10,validation_data=(x_valid_scaled,y_valid),callbacks=callbacks)
1.1.2 展示
在终端输入如下代码
tensorboard --logdir=callbacks
注意:
- 所处的当前环境要有tensorflow
- 上面代码中callbacks为你的callbacks的路径
显示如下:
在浏览器输入:http://localhost:6006/
即可查看:
详细步骤参考文后链接
1.2 方法二:tf.summary
保存为类似“events.out.tfevents.1608523036.leeP510.26215.5.v2”文件
1.2.1 保存
创建写入句柄
# 训练和验证summary文件的保存位置,用于在tensorboard中查看训练的参数(accuary,loss)的变化
train_writer = tf.summary.create_file_writer(train_log_dir)
valid_writer = tf.summary.create_file_writer(valid_log_dir)
生成准确度、损失函数、优化器的对象
# 准确度、损失函数、优化器
accuracy = metrics.BinaryAccuracy() # 二分类准确度 训练集上
accuracy_val = metrics.BinaryAccuracy() # 二分类准确度计算 验证集上
loss_bc = losses.BinaryCrossentropy() # 损失函数
optimizer = optimizers.Adam(learning_rate=self.learning_rate, beta_1=self.args.beta1)
以验证集为例:
获取准确度、损失等
# 2. 验证集上
epoch_total_val_loss = [] # 一个epoch内的loss
for i, (x_val_batch, y_val_batch) in enumerate(valid_data):# 模型产生预测图pred_val = model(x_val_batch)# 模型产生的预测图(包括模型中间产生的预测图)与标签与交叉熵计算v_logits, v_loss = pre_process_binary_cross_entropy(loss_bc, pred_val, y_val_batch)# 用模型最后产生的预测图和真实标签更新准确度accuracy_val.update_state(y_true=y_val_batch, y_pred=v_logits[-1])# 保存一次迭代的损失epoch_total_val_loss.append(v_loss.numpy())val_acc = accuracy_val.result() # 获取准确度epoch_total_val_loss = np.array(epoch_total_val_loss) # 列表损失转数组
print('-------epoch(validation):', epoch, 'val loss:', epoch_total_val_loss.mean(), 'accuracy:',val_acc.numpy())
保存与重置
# 保存验证集上的summary(loos,accurcy)
with valid_writer.as_default():tf.summary.scalar('loss', epoch_total_val_loss.mean(), step=epoch)tf.summary.scalar('accuracy', val_acc.numpy(), step=epoch)# 重置准确度
accuracy.reset_states()
accuracy_val.reset_states()
1.2.2 展示
在终端输入:
tensorboard --logdir=D:\Data_saved\Desktop\tes\服务器\train
具体如下:
浏览器输入上面的网址:
存在的问题:
训练和验证的指标保存在两个文件中,目前尚不知如何在一张图总显示(类似上面的第一种方法的结果)
解决方法:
存在问题的文件组织方式:
-test-logevents.out.tfevents.1608522481.DESKTOP-IIN3E21.2448.13.v2events.out.tfevents.1608523036.leeP510.26215.13.v2
命令:
tensorboard --logdir=D:\Data_saved\Desktop\tes\服务器\train
打开tensorboard
图形变得紊乱。
新的文件组织
-test-trainevents.out.tfevents.1608522481.DESKTOP-IIN3E21.2448.13.v2-validevents.out.tfevents.1608523036.leeP510.26215.13.v2
命令:
注意: 命令中的文件夹只到父级目录
tensorboard --logdir=D:\Data_saved\Desktop\tes\服务器
结果:
图中根据文件夹的名字(train/valid)分别对图中的线进行了命名
好吧,我过拟合了,摔:(
参考文献
[1] https://www.cnblogs.com/Java3y/p/10740196.html
[2] https://blog.csdn.net/weixin_39190382/article/details/104113449
[3]https://blog.csdn.net/m0_37188294/article/details/84999265
[4]https://www.pianshen.com/article/316476506/
[5]https://www.94e.cn/info/2232
【Tensorflow】tensorboard小结相关推荐
- Tensorflow— tensorboard网络运行
代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data#载入数据集 #当前路径 m ...
- Tensorflow—tensorboard网络结构
代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data#载入数据集 #当前路径 m ...
- TensorFlow学习笔记(十二)TensorFLow tensorBoard 总结
Tensorboard: 如何更直观的观察数据在神经网络中的变化,或是已经构建的神经网络的结构.上一篇文章说到,可以使用matplotlib第三方可视化,来进行一定程度上的可视化.然而Tensorfl ...
- Tensorflow——Tensorboard可视化
1.前言 本节内容会用到浏览器, 而且与 tensorboard 兼容的浏览器是 "Google Chrome". 使用其他的浏览器不保证所有内容都能正常显示. 学会用 Tenso ...
- win7 下anaconda TensorFlow tensorboard使用
第一步在 Spyder(TensorFlow)中输入一下代码: # View more python learning tutorial on my Youtube and Youku channel ...
- tensorflow tensorboard summary的工作特点
自己之前主要使用summary来监督网络的训练,所以没有对summary有太多的使用.最近要用summary的数据进行对比分析并展示,所以了解到summary有以下运行特点 1. 每次训练时运行tf. ...
- Tensorflow 可视化 TensorBoard 尝试~
tensorboard --logdir=/home/ubuntu/temp/log 注意:在阅读本文之前,请务必更新你的浏览器.Chrome大法好! 数据.模型可视化是TensorFlow的一项重 ...
- Tensorflow:Tensorboard使用
目录 目录 前言 可视化第一步 实现graphs 后记 前言 TensorFlow是以流动的张量为名的神经网络开发库,所以Google为了让人们更直观的了解流动的张量的含义,他们做了个TensorBo ...
- Tensorflow(0)--Tensorboard
Tensorboard 1.tensorboard 使用demo 2.tensorboard 数据再读取 使用tensorboard 记录实验数据,可以启动服务后,在网页上实时看到被记录指标的变换情况 ...
- 基于python实现resnet_【Tensorflow系列】使用Inception_resnet_v2训练自己的数据集并用Tensorboard监控...
[写在前面] 用Tensorflow(TF)已实现好的卷积神经网络(CNN)模型来训练自己的数据集,验证目前较成熟模型在不同数据集上的准确度,如Inception_V3, VGG16,Inceptio ...
最新文章
- codility上的问题 (22)
- HTTP协议、HTTP请求方法、常见状态码、HTTP消息
- Conversion to Dalvik format failed with error 1
- 单片机 c语言 概念题,(C语言版)单片机复习题.doc
- 思科中国创新中心落户广州 打造年产值超千亿元万物互联“智慧城市”
- MVC.NET:提供对字体文件.woff的访问
- php中全局变量如何设置,如何在php中声明全局变量?
- C# 导出Excel 多个Sheet
- java开发sublime插件_开发者最常用的8款Sublime text 3插件
- Tableau零基础教程
- Photoshop2020默认快捷键整理(Mac版)
- 樊登读书会掌控读后感_樊登读书刻意练习读后感
- C#基础知识(停止更新、移步博客园)
- 2021年高处安装、维护、拆除考试及高处安装、维护、拆除考试技巧
- Theorem,Proposition, Lemma 和 Corollary是什么 区别关系
- ADO简介(未完成)
- bilibili 镜像
- 海阔凭鱼跃天高任鸟飞
- 强大的UI组件集Telerik R3 2022支持.NET 7、全新的主题等
- 流水线中使用 docker in pod 方式构建容器镜像