网络中加入Tensorboard

1.Tensorboard

TensorBoard 是一个由 TensorFlow 提供的可视化工具,用于在深度学习任务中分析和可视化训练过程中的各种数据。虽然它是由 TensorFlow 团队开发的,但它也可以用于其他深度学习框架,如 PyTorch。TensorBoard 提供了许多有用的功能,用于监控和分析模型训练过程的不同方面:

  1. 训练曲线:TensorBoard 可以绘制训练和验证损失函数随时间的变化曲线,以帮助了解模型的收敛情况。

  2. 学习率曲线:可以跟踪学习率随训练步数的变化,以确保学习率的调整是有效的。

  3. 参数直方图:TensorBoard 可以显示模型中各个参数的分布情况,帮助理解权重和偏差的变化。

  4. 嵌入可视化:如果在训练过程中使用了嵌入(embeddings),TensorBoard 可以将高维数据嵌入到低维空间中进行可视化。

  5. 图可视化:可以可视化模型的计算图,了解模型的结构。

  6. 图像和媒体可视化:可以可视化输入图像、输出图像或其他媒体数据,以帮助您理解模型的表现。

  7. 自定义可视化:可以根据需要自定义可视化面板,展示关注的数据。
    要使用 TensorBoard,需要在训练过程中记录相应的数据,并将其保存到 TensorBoard 的日志目录中。然后,通过在终端运行命令tensorboard --logdir=log_directory来启动 TensorBoard 服务器,其中log_directory是保存日志的目录。在浏览器中访问生成的链接,能够在 TensorBoard 中查看可视化数据。

2.如何监控

  1. 安装 TensorBoard:首先,确保您已经安装了 TensorFlow 或其他支持 TensorBoard 的深度学习框架。如果您正在使用 TensorFlow,TensorBoard 通常与 TensorFlow 一起安装。
  2. 在训练代码中添加日志记录:在您的深度学习训练代码中,您需要在适当的位置记录需要监控的数据。这可能包括训练损失、验证损失、准确率等。
  3. 创建 TensorBoard 日志目录:在您的训练代码中,将记录的数据保存到 TensorBoard 的日志目录中。您可以使用 TensorFlow 的 tf.summary 模块来记录这些数据。确保您在适当的地方添加类似以下代码:
# 导入 TensorFlow
import tensorflow as tf

# 创建 TensorBoard 日志目录
log_dir = "logs"
summary_writer = tf.summary.create_file_writer(log_dir)
  1. 在训练循环中添加记录代码:在训练循环中,使用 summary_writer 对象记录数据。例如:
# 在训练循环中记录训练损失和验证损失
with summary_writer.as_default():
    tf.summary.scalar("train_loss", train_loss, step=epoch)
    tf.summary.scalar("val_loss", val_loss, step=epoch)
  1. 启动 TensorBoard 服务器:在终端中,使用以下命令启动 TensorBoard 服务器:
tensorboard --logdir=logs
# tensorboard --logdir=logs --host 0.0.0.0
  1. 访问 TensorBoard 界面:在浏览器中访问生成的链接(默认为 http://localhost:6006),能够在TensorBoard 界面中查看记录的数据。
  2. 浏览可视化数据:在 TensorBoard 界面中,您可以浏览不同的面板,查看训练损失、验证损失、学习率、参数直方图等数据的变化。
    miou_loss

3.代码

  1. 导入库(Pytorch)
from torch.utils.tensorboard import SummaryWriter
  1. 找到计算Miou和Loss的地方,在开始训练的地方。需要先做判断,将第一个点去掉。
    writer = SummaryWriter(log_dir="logs")
    while True:  # cur_itrs < opts.total_itrs:
        model.train()
        for (images, labels) in train_loader:
			# ......(省略)
            if (cur_itrs) % 10 == 0:
                interval_loss = interval_loss / 10
                print("Epoch %d, Itrs %d/%d, Loss=%f" %
                      (cur_epochs, cur_itrs, opts.total_itrs, interval_loss))
                # 将平均损失值写入TensorBoard日志
                if (cur_itrs) / 10 > 0:
                    writer.add_scalar("Val Loss", interval_loss, cur_itrs)
                # writer.add_scalar("Train Loss", interval_loss, cur_itrs)
                interval_loss = 0.0
			# ......(省略)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值