【Tensorflow】tensorboard log并排显示、同一窗口显示不同loss
这是两个很简单(超级简单,我都不想写),但是用起来很舒服的技巧;
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相关推荐
- 【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )
文章目录 一.显示模块窗口 二.显示记录窗口 三.显示内存窗口 四.显示线程 五.显示句柄 六.显示 CPU 七.多窗口界面 一.显示模块窗口 点击 OD 中的 e 按钮 , 可以显示 " ...
- 服务器屏幕不全屏显示,服务器窗口显示不全屏
服务器窗口显示不全屏 内容精选 换一换 本文以云服务器的操作系统为"Windows Server 2008 R2 Standard 64bit".磁盘容量为3 TB举例,提供容量大 ...
- 关于opencv读取图片,无法正常显示,窗口显示灰色的问题
本人刚开始学习OpenCV3,主要是跟着毛星云老师的<OpenCV3编程入门>进行学习,学习过程中遇到一些问题,希望能在这里跟大家分享,同时希望得到有效的解答.由于本人是个小白,有什么不对 ...
- ideal中如何添加几个不同的项目在同一个idea页面显示(同一个窗口显示多个工程)...
今天,我遇到了一个问题,就是同事给了我一些项目,我下载了之后,项目有点多,然后想把这些项目都放到一个里面,所以我就采取了添加module的方式进行添加,首先先看一下我们的四个项目, 我们就想实现在一个 ...
- C#调试中,在VS的输出窗口或即时窗口显示消息
使用 System.Diagnostics.Debugger.Log 方法来把消息显示到VS的输出窗口.在调试设置里,有一个选项,可以把消息输出到即时窗口中,而不是输出窗口. 转载于:https:// ...
- activity及其窗口显示流程
时序图预览 activity及其窗口显示流程图 activity的启动流程可参考:activity启动流程图 关键代码分析 ActivityThread 接收框架 (ActivityTaskManag ...
- 在EXCEL中一个窗口显示多个工作表
在EXCEL中一个窗口显示多个工作表 目录 在EXCEL中一个窗口显示多个工作表 1.点击视图选项卡中"全部重排" 2.弹出窗口 在"排列方式"中选点击&quo ...
- PCL基础4:PCLVisualizer可视化窗口显示
1.单视口显示. //可视化结果 pcl::visualization::CloudViewer viewer("边界提取"); viewer.showCloud(cloud_ou ...
- 【实用】几个实用的webstorm、IDEA编辑器窗口快捷键设置,Alt+V垂直复制当前窗口,Alt+Shift+V将当前窗口复制到另一边的分割窗口显示,Alt+Shift+M移动当前活动窗口到另一边
Alt+V垂直复制当前窗口 Alt+Shift+V将当前窗口复制到另一边的分割窗口显示,Alt+Shift+M移动当前活动窗口到另一边
最新文章
- ntko office在线编辑控件问题记录
- php扫描蓝牙设备接口,微信硬件蓝牙扫描某个设备接口onScanWXDeviceResult
- FusionCharts參数中文说明
- Spring Security加密策略
- informix 数据库锁表分析和解决方法
- 将home多余的空间分配到/分区下
- TwinCAT3 控制器PLC之间EAP通讯3-从机发送方式2
- 评分卡模型python实现
- vgc机器人编程1到13题_工业机器人编程与实操 期末试题
- 数据库系统之ANSI SQL中的事务处理
- 什么是APS高级计划排程(生产计划排产)系统主要功能模块有哪些?
- concatenation 和 element-wise summation 该选哪个?
- 联想微型计算机m4350q升级,细节:联想M4350q小巧到极致_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...
- 谈谈对Python爬虫的理解
- GE核磁共振常见术语
- 微信小程序API promise的实现
- 如何在ChinaRen校友录中免费发多彩留言
- 【历史上的今天】9 月 8 日:阿里开放平台计划;英特尔发布首款双核酷睿处理器;我国研制全数字高清晰度电视系统
- Stuart Russell对话姚期智:为全人类设计AI系统,可以借鉴墨子「兼爱」思想丨2023智源大会AI安全与对齐论坛...
- 绝大多数情况下,没有解决不了的问题,只有因为平时缺少练习而惧怕问题的复杂度,畏惧的心理让我们选择避让,采取并不那么好的方案去解决问题...