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

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

log并排显示

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

代码
import tensorflow as tf

loss1 = 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 tf

loss1 = 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 np

loss = tf.placeholder(dtype=tf.float32, name="loss")  # 占位符模拟loss

with 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)  # 模拟输入训练集jisuanloss
        valid_writer.add_summary(sess.run(valid_smr, feed_dict={loss: np.random.normal()}), ind)  # 模拟输入验证集jisuanloss

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

Tensorboard 显示

  此时,tensorboard显示如下,可以通过左下角的蓝色椭圆中的按钮决定隐藏曲线。
在这里插入图片描述

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 Tensorflow 中安装 TensorBoard 是非常简单的。可以通过以下步骤安装: 1. 确定你已经安装 Tensorflow,最好安装了最新版本的Tensorflow。 2. 在终端或命令行中运行以下命令安装 TensorBoard: ``` pip install tensorboard ``` 3. 安装完成后,可以通过运行以下命令启动 TensorBoard: ``` tensorboard --logdir=/path/to/logs ``` 其中 `/path/to/logs` 是 TensorBoard 日志文件所在的目录路径。这样就可以在浏览器中访问 TensorBoard,地址为 http://localhost:6006/。 注意:在运行 TensorBoard 之前,需要先生成 TensorBoard 日志文件。可以使用 Tensorflow 中的 SummaryWriter 类来生成日志文件。 ### 回答2: 在TensorFlow中安装TensorBoard非常简单。以下是安装TensorBoard的步骤: 1. 确保已经正确安装了TensorFlow。可以通过以下命令验证TensorFlow安装是否成功: ``` import tensorflow as tf print(tf.__version__) ``` 2. 确保已经安装了TensorFlow的命令行工具。可以通过以下命令安装(如果尚未安装): ``` pip install tensorflow ``` 3. 打开命令行终端,输入以下命令安装TensorBoard: ``` pip install tensorboard ``` 4. 安装完TensorBoard后,输入以下命令启动TensorBoard服务器: ``` tensorboard --logdir=/path/to/log-directory ``` 其中`/path/to/log-directory`是存储TensorFlow模型训练过程日志文件的目录。TensorBoard将读取并可视化这些日志文件。 5. 在浏览器中打开`http://localhost:6006`,可以看到TensorBoard的用户界面。在该界面上,可以查看各种训练指标、图表和图像。 通过这些简单的步骤,您就可以在TensorFlow中成功安装和使用TensorBoard了。记住,在使用TensorBoard之前,需要先训练TensorFlow模型并保存相关的日志文件。 ### 回答3: 要在tensorflow中安装tensorboard,可以按照以下步骤进行操作: 1. 确保已经安装好tensorflow。可以通过使用`pip install tensorflow`命令来安装最新版本的tensorflow。 2. 打开命令提示符或终端窗口,并使用`pip install tensorboard`命令安装tensorboard。 3. 在tensorflow的代码中,添加以下几行代码来启用tensorboard: ```python import tensorflow as tf from tensorflow.keras.callbacks import TensorBoard # 创建一个TensorBoard回调对象 tensorboard_callback = TensorBoard(log_dir="./logs") # 在模型拟合过程中,将回调对象传递给fit函数的callbacks参数 model.fit(x_train, y_train, epochs=10, callbacks=[tensorboard_callback]) ``` 在上述代码中,我们首先导入了tensorflowTensorBoard回调模块。然后,我们创建了一个Tensorboard回调对象,并指定tensorboard日志文件的目录。接下来,在模型的`fit`函数中,我们将回调对象作为参数传递给`callbacks`参数。 4. 在命令提示符或终端窗口中,使用`tensorboard --logdir=./logs`命令来启动tensorboard。其中,`--logdir`参数指定了tensorboard日志文件的路径。 5. 在浏览器中访问`http://localhost:6006`,就可以看到tensorboard的界面了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值