【log文件转化为tensorboard使用的文件】

本文介绍如何将包含损失值的log文件转换为适合TensorBoard可视化的格式。通过读取log文件,将字符串转换为字典,提取损失值,并使用SummaryWriter添加到scalar面板,从而实现训练过程的可视化。
摘要由CSDN通过智能技术生成

今天师兄想看一看log文件中记录的各个loss都是怎样变化的,但是发愁这里面都是一些字符啊(如下图所示)。他想利用tensorboard进行一个可视化~
于是乎,我们就写了一个简单的代码,实现一下这个功能~


这是log文件里的样子~
在这里插入图片描述
在看代码之前,让我们先说一下代码逻辑!(学学逻辑才能改嘛坏笑~)

其实就是把log文件一行一行读入,然后把str转换为字典,然后取值,最后通过SummaryWriter进行add_add_scalar操作。(就是这么简单~~)

上代码:::

import json
from  tensorboardX import SummaryWriter
from torch.utils.tensorboard import SummaryWriter


if __name__ == '__main__':
    writer = SummaryWriter('./runs/exp')  # 实例化writer
    log = r"巴拉巴拉.log"

    i = 0
    for line in open(log, 'r', encoding='utf-8'):

        # print(line) # 按照每一行分开
        # print(type(line)) # <class 'str'>

        # 把str转化为字典
        dic_line = json.loads(line)
        # print(dic_line)
        # print(type(dic_line))

        # 取 键data的值
        key_data = dic_line.get("data") # 获取
        # print(key_data)
        # print(type(key_data))

        # 取data里的 loss的值
        key_loss = key_data.get("loss")  # 获取
        # print(key_loss)
        # print(type(key_loss))

        # 取"T"
        key_loss_T = key_loss.get("T")  # 获取T
        print(key_loss_T)
        print(type(key_loss_T))


        # 写!!
        i += 1
        writer.add_scalar("Total_loss", key_loss_T, i)

    writer.close()



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
如果你使用的是YOLOX的官方代码,那么在训练过程中,YOLOX会自动保存训练日志到`exp/exp_name/train_log.txt`文件中。要使用TensorBoard可视化训练日志,可以按照以下步骤进行操作: 1. 在YOLOX根目录下打开终端,输入以下命令启动TensorBoard: ``` tensorboard --logdir exp/exp_name ``` 其中,`exp/exp_name`是你的YOLOX实验结果的保存路径。 2. 打开浏览器,在地址栏输入`http://localhost:6006`,进入TensorBoard网页。 3. 在TensorBoard网页左侧的菜单栏中,找到`Scalars`选项卡,点击进入。 4. 在`Scalars`页面中,将`total_loss`输入到搜索框中,即可查看`total_loss`的曲线。 如果你希望修改YOLOX代码以便在训练时自动保存TensorBoard日志,可以按照以下步骤进行操作: 1. 在YOLOX根目录下找到`yolox/core/trainer.py`文件,打开该文件。 2. 在`Trainer`类的`__init__`方法中,添加以下代码: ``` self.writer = SummaryWriter(log_dir=self.exp_log_dir) ``` 这将会创建一个`SummaryWriter`对象,用于保存TensorBoard日志。 3. 在`Trainer`类的`train`方法中,找到以下代码: ``` loss, log_vars = self.forward_backward(batch) ``` 4. 在该代码后面添加以下代码: ``` self.writer.add_scalar('train/total_loss', loss.item(), self.iter) ``` 这将会在每个训练步骤结束后将`total_loss`的值写入TensorBoard日志。 5. 最后,在训练结束后,记得关闭`SummaryWriter`对象,以便将日志保存到磁盘: ``` self.writer.close() ``` 这些修改将会让YOLOX在训练时自动保存TensorBoard日志,方便你查看训练过程中的各项指标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位不愿透漏姓氏的许先森

你的鼓励是我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值