模型训练日志生成可视化曲线
创始人
2024-11-12 22:10:42

前言

  因为正好有同学问到在训练过程中产生的日志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 plt  def parse_json_file(json_file):     with open(json_file, 'r') as f:         lines = f.readlines()     return lines  def extract_loss(json_lines):     loss = []     for line in json_lines:         data = json.loads(line)         if 'loss' in data:             loss.append(data['loss'])     return loss  def 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文件的路径

四、结果展示 

 

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...