这是两个很简单(超级简单,我都不想写),但是用起来很舒服的技巧;

log并排显示

  首先是信息并排显示,现在的深度学习通常有很多个信息需要同时展示;以loss为例,如果下面这样写,那么屏幕一次能看到的loss有限(当然了,你是竖屏我就没话说了)。

代码

import tensorflow as tfloss1 = tf.random.normal(shape=[1], name="loss1")  # 随机值模拟loss
loss2 = tf.random.normal(shape=[1], name="loss2")
loss3 = tf.random.normal(shape=[1], name="loss3")loss1_smr = tf.summary.scalar(loss1.name, tf.reduce_mean(loss1)) # 统计标量
loss2_smr = tf.summary.scalar(loss2.name, tf.reduce_mean(loss2))
loss3_smr = tf.summary.scalar(loss3.name, tf.reduce_mean(loss3))all_loss_smr = tf.summary.merge_all()         #合并信息
writer = tf.summary.FileWriter("../logs/")      #logs 写出器config = tf.ConfigProto()
config.gpu_options.allow_growth = True
with tf.Session(config=config) as sess:for ind in range(20):writer.add_summary(sess.run(all_loss_smr), ind)

Tensorboard 显示


  这种展示方法由于一般的电脑是横屏,能看到的log信息有限。这时候就想,能不能把同一类信息显示在同一行呢?比如,训练集的loss信息显示在一行,学习率变化显示在一行,然后PSNR等评价系数显示在一行。这时候就想到了Tensorflow里面提倡的名称域,我们只需要一句代码就能搞定。

代码

  还是以loss为例;

import tensorflow as tfloss1 = tf.random.normal(shape=[1], name="loss1")  # 随机值模拟loss
loss2 = tf.random.normal(shape=[1], name="loss2")
loss3 = tf.random.normal(shape=[1], name="loss3")with tf.name_scope("loss"):loss1_smr = tf.summary.scalar(loss1.name, tf.reduce_mean(loss1))  # 统计标量loss2_smr = tf.summary.scalar(loss2.name, tf.reduce_mean(loss2))loss3_smr = tf.summary.scalar(loss3.name, tf.reduce_mean(loss3))all_loss_smr = tf.summary.merge_all()       # 合并信息
writer = tf.summary.FileWriter("../logs/")  # logs 写出config = tf.ConfigProto()
config.gpu_options.allow_growth = True
with tf.Session(config=config) as sess:for ind in range(20):writer.add_summary(sess.run(all_loss_smr), ind)

Tensorboard 显示

同一窗口显示多个loss

  有时候,我们需要比较两个loss,比如,我们需要比较训练时训练集loss与验证集的loss,防止过拟合,这是就希望能在同一个窗口显示两个loss的曲线。写法如下面的代码。

import tensorflow as tf
import numpy as nploss = tf.placeholder(dtype=tf.float32, name="loss")  # 占位符模拟losswith tf.name_scope("loss"):loss_smr = tf.summary.scalar(loss.name, tf.reduce_mean(loss))train_smr = tf.summary.merge([loss_smr])
valid_smr = tf.summary.merge([loss_smr])
train_writer = tf.summary.FileWriter("../logs/train")  # logs信息写在不同的文件夹
valid_writer = tf.summary.FileWriter("../logs/valid")config = tf.ConfigProto()
config.gpu_options.allow_growth = True
with tf.Session(config=config) as sess:for ind in range(20):train_writer.add_summary(sess.run(train_smr, feed_dict={loss: np.random.normal()}), ind)  # 模拟输入训练集jisuanlossvalid_writer.add_summary(sess.run(valid_smr, feed_dict={loss: np.random.normal()}), ind)  # 模拟输入验证集jisuanloss

  为什么要将log信息放在两个文件夹,因为这两个log信息是同名的,无法同时存放在同一路径。

Tensorboard 显示

  此时,tensorboard显示如下,可以通过左下角的蓝色椭圆中的按钮决定隐藏曲线。

【Tensorflow】tensorboard log并排显示、同一窗口显示不同loss相关推荐

  1. 【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )

    文章目录 一.显示模块窗口 二.显示记录窗口 三.显示内存窗口 四.显示线程 五.显示句柄 六.显示 CPU 七.多窗口界面 一.显示模块窗口 点击 OD 中的 e 按钮 , 可以显示 " ...

  2. 服务器屏幕不全屏显示,服务器窗口显示不全屏

    服务器窗口显示不全屏 内容精选 换一换 本文以云服务器的操作系统为"Windows Server 2008 R2 Standard 64bit".磁盘容量为3 TB举例,提供容量大 ...

  3. 关于opencv读取图片,无法正常显示,窗口显示灰色的问题

    本人刚开始学习OpenCV3,主要是跟着毛星云老师的<OpenCV3编程入门>进行学习,学习过程中遇到一些问题,希望能在这里跟大家分享,同时希望得到有效的解答.由于本人是个小白,有什么不对 ...

  4. ideal中如何添加几个不同的项目在同一个idea页面显示(同一个窗口显示多个工程)...

    今天,我遇到了一个问题,就是同事给了我一些项目,我下载了之后,项目有点多,然后想把这些项目都放到一个里面,所以我就采取了添加module的方式进行添加,首先先看一下我们的四个项目, 我们就想实现在一个 ...

  5. C#调试中,在VS的输出窗口或即时窗口显示消息

    使用 System.Diagnostics.Debugger.Log 方法来把消息显示到VS的输出窗口.在调试设置里,有一个选项,可以把消息输出到即时窗口中,而不是输出窗口. 转载于:https:// ...

  6. activity及其窗口显示流程

    时序图预览 activity及其窗口显示流程图 activity的启动流程可参考:activity启动流程图 关键代码分析 ActivityThread 接收框架 (ActivityTaskManag ...

  7. 在EXCEL中一个窗口显示多个工作表

    在EXCEL中一个窗口显示多个工作表 目录 在EXCEL中一个窗口显示多个工作表 1.点击视图选项卡中"全部重排" 2.弹出窗口 在"排列方式"中选点击&quo ...

  8. PCL基础4:PCLVisualizer可视化窗口显示

    1.单视口显示. //可视化结果 pcl::visualization::CloudViewer viewer("边界提取"); viewer.showCloud(cloud_ou ...

  9. 【实用】几个实用的webstorm、IDEA编辑器窗口快捷键设置,Alt+V垂直复制当前窗口,Alt+Shift+V将当前窗口复制到另一边的分割窗口显示,Alt+Shift+M移动当前活动窗口到另一边

    Alt+V垂直复制当前窗口 Alt+Shift+V将当前窗口复制到另一边的分割窗口显示,Alt+Shift+M移动当前活动窗口到另一边

最新文章

  1. ntko office在线编辑控件问题记录
  2. php扫描蓝牙设备接口,微信硬件蓝牙扫描某个设备接口onScanWXDeviceResult
  3. FusionCharts參数中文说明
  4. Spring Security加密策略
  5. informix 数据库锁表分析和解决方法
  6. 将home多余的空间分配到/分区下
  7. TwinCAT3 控制器PLC之间EAP通讯3-从机发送方式2
  8. 评分卡模型python实现
  9. vgc机器人编程1到13题_工业机器人编程与实操 期末试题
  10. 数据库系统之ANSI SQL中的事务处理
  11. 什么是APS高级计划排程(生产计划排产)系统主要功能模块有哪些?
  12. concatenation 和 element-wise summation 该选哪个?
  13. 联想微型计算机m4350q升级,细节:联想M4350q小巧到极致_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...
  14. 谈谈对Python爬虫的理解
  15. GE核磁共振常见术语
  16. 微信小程序API promise的实现
  17. 如何在ChinaRen校友录中免费发多彩留言
  18. 【历史上的今天】9 月 8 日:阿里开放平台计划;英特尔发布首款双核酷睿处理器;我国研制全数字高清晰度电视系统
  19. Stuart Russell对话姚期智:为全人类设计AI系统,可以借鉴墨子「兼爱」思想丨2023智源大会AI安全与对齐论坛...
  20. 绝大多数情况下,没有解决不了的问题,只有因为平时缺少练习而惧怕问题的复杂度,畏惧的心理让我们选择避让,采取并不那么好的方案去解决问题...

热门文章

  1. 2023考研统考考生需准备的网报信息
  2. FCPX视频特效插件Boris Continuum Complete 2019
  3. 基于SpringBoot实现的jvm远程监工图形化工具
  4. UCB算法升职记——LinUCB算法
  5. 数控立式加工中心行业调研报告 - 市场现状分析与发展前景预测
  6. 卫星导航定位——卫星信号基础
  7. Windows pip install jupyter notebook
  8. I believe I can fly!
  9. oracle 异常错误 ORA-01555 caused by SQL statement below
  10. python锁机制_python GLI锁机制