欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 模型训练日志生成可视化曲线

模型训练日志生成可视化曲线

2025/9/15 10:27:19 来源:https://blog.csdn.net/ohligay/article/details/140808052  浏览:    关键词:模型训练日志生成可视化曲线

前言

  因为正好有同学问到在训练过程中产生的日志json文件如何生成可视化的loss曲线图,所以就正好放到这里,如果有需要可以自行取用。我们做深度学习模型跑任务的时候,通常会产生log日志,我们为了方便查看训练过程波动或者生成图像用于论文的编纂,都需要把json格式的文件可视化成一张曲线图,因此提供下面的代码。

一、文件格式

  此处我随机选取了一个项目中的json格式的log文件为例:

{"mode": "train","epoch": 1,"iter": 500,"lr": 2e-05,"memory": 888,"data_time": 0.00312,"decode.loss_seg": 0.0622,"decode.acc_seg": 86.07552,"loss": 0.0622,"time": 0.17702
}
{"mode": "train","epoch": 2,"iter": 550,"lr": 2e-05,"memory": 888,"data_time": 0.25216,"decode.loss_seg": 0.05105,"decode.acc_seg": 82.76717,"loss": 0.05105,"time": 0.43304
}

二、可视化代码

import json
import matplotlib.pyplot as pltdef parse_json_file(json_file):with open(json_file, 'r') as f:lines = f.readlines()return linesdef extract_loss(json_lines):loss = []for line in json_lines:data = json.loads(line)if 'loss' in data:loss.append(data['loss'])return lossdef plot_loss_curve(loss):# plt.figure(figsize=(10, 6))plt.plot(loss, linestyle='-', color='b', label='Training Loss')plt.title('Training Loss Curve')plt.xlabel('Iterations')plt.ylabel('Loss')plt.grid(True)plt.legend()plt.tight_layout()plt.show()# 示例用法
if __name__ == '__main__':json_file = r'E:\code\D-RISE\utils\20240625_123859.json'json_lines = parse_json_file(json_file)loss = extract_loss(json_lines)plot_loss_curve(loss)

三、步骤解析 

  • 首先读取json文件
  • 选取每行数据中的“loss”字段作为纵坐标(根据需要可以替换为其他字段)
  • 绘制图像,注释的位置是图像的长宽比,自认为不设置图像更加好看所以注释掉了
  • 如果需要在每个点的位置加一个小圆点可以在plot中设置 marker='o',也可以更换
  • color字段代表曲线颜色,linestyle字段代表曲线风格可以更换为虚线等
  • 下面3个参数分别为图像名称、横坐标、纵坐标
  • 主函数下json_file是自己json文件的路径

四、结果展示 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词