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

注意:

  1. 所处的当前环境要有tensorflow
  2. 上面代码中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小结相关推荐

  1. Tensorflow— tensorboard网络运行

    代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data#载入数据集 #当前路径 m ...

  2. Tensorflow—tensorboard网络结构

    代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data#载入数据集 #当前路径 m ...

  3. TensorFlow学习笔记(十二)TensorFLow tensorBoard 总结

    Tensorboard: 如何更直观的观察数据在神经网络中的变化,或是已经构建的神经网络的结构.上一篇文章说到,可以使用matplotlib第三方可视化,来进行一定程度上的可视化.然而Tensorfl ...

  4. Tensorflow——Tensorboard可视化

    1.前言 本节内容会用到浏览器, 而且与 tensorboard 兼容的浏览器是 "Google Chrome". 使用其他的浏览器不保证所有内容都能正常显示. 学会用 Tenso ...

  5. win7 下anaconda TensorFlow tensorboard使用

    第一步在 Spyder(TensorFlow)中输入一下代码: # View more python learning tutorial on my Youtube and Youku channel ...

  6. tensorflow tensorboard summary的工作特点

    自己之前主要使用summary来监督网络的训练,所以没有对summary有太多的使用.最近要用summary的数据进行对比分析并展示,所以了解到summary有以下运行特点 1. 每次训练时运行tf. ...

  7. Tensorflow 可视化 TensorBoard 尝试~

    tensorboard --logdir=/home/ubuntu/temp/log 注意:在阅读本文之前,请务必更新你的浏览器.Chrome大法好!  数据.模型可视化是TensorFlow的一项重 ...

  8. Tensorflow:Tensorboard使用

    目录 目录 前言 可视化第一步 实现graphs 后记 前言 TensorFlow是以流动的张量为名的神经网络开发库,所以Google为了让人们更直观的了解流动的张量的含义,他们做了个TensorBo ...

  9. Tensorflow(0)--Tensorboard

    Tensorboard 1.tensorboard 使用demo 2.tensorboard 数据再读取 使用tensorboard 记录实验数据,可以启动服务后,在网页上实时看到被记录指标的变换情况 ...

  10. 基于python实现resnet_【Tensorflow系列】使用Inception_resnet_v2训练自己的数据集并用Tensorboard监控...

    [写在前面] 用Tensorflow(TF)已实现好的卷积神经网络(CNN)模型来训练自己的数据集,验证目前较成熟模型在不同数据集上的准确度,如Inception_V3, VGG16,Inceptio ...

最新文章

  1. codility上的问题 (22)
  2. HTTP协议、HTTP请求方法、常见状态码、HTTP消息
  3. Conversion to Dalvik format failed with error 1
  4. 单片机 c语言 概念题,(C语言版)单片机复习题.doc
  5. 思科中国创新中心落户广州 打造年产值超千亿元万物互联“智慧城市”
  6. MVC.NET:提供对字体文件.woff的访问
  7. php中全局变量如何设置,如何在php中声明全局变量?
  8. C# 导出Excel 多个Sheet
  9. java开发sublime插件_开发者最常用的8款Sublime text 3插件
  10. Tableau零基础教程
  11. Photoshop2020默认快捷键整理(Mac版)
  12. 樊登读书会掌控读后感_樊登读书刻意练习读后感
  13. C#基础知识(停止更新、移步博客园)
  14. 2021年高处安装、维护、拆除考试及高处安装、维护、拆除考试技巧
  15. Theorem,Proposition, Lemma 和 Corollary是什么 区别关系
  16. ADO简介(未完成)
  17. bilibili 镜像
  18. 海阔凭鱼跃天高任鸟飞
  19. 强大的UI组件集Telerik R3 2022支持.NET 7、全新的主题等
  20. 流水线中使用 docker in pod 方式构建容器镜像

热门文章

  1. struts2通配符及Action开发的三种方式
  2. 滑块验证码Java实现
  3. pandas之Series()菜鸟教程
  4. 计算机组成原理 多级中断,计算机组成原理的大神们能不能帮忙做几道题啊
  5. mybatis中的自动提交事务的设置
  6. python 读取access_python读取数据access出错
  7. c语言半壁江山回调函数,回调函数运行时间太长影响了程序性能,怎么办
  8. 华为算法精英赛(题3:概率计算)
  9. Fiddler—PC上实现手机的抓包
  10. Cpdetector编码识别