news 2026/2/12 8:42:34

训练日志在哪看?workdirs目录结构全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
训练日志在哪看?workdirs目录结构全解析

训练日志在哪看?workdirs目录结构全解析

1. 引言:为什么需要理解 workdirs 目录?

在使用cv_resnet18_ocr-detectionOCR文字检测模型进行训练微调时,用户最常遇到的问题之一就是:“训练日志到底保存在哪里?如何查看训练过程是否正常?

尤其是在 WebUI 界面中点击“开始训练”后,仅显示“训练完成!”,但没有直观的输出信息。此时,深入理解项目中的workdirs/目录结构就显得尤为重要。

本文将基于科哥构建的 cv_resnet18_ocr-detection 镜像环境,全面解析workdirs/的目录组织方式、关键文件作用以及如何通过日志判断训练状态和性能表现。帮助开发者快速定位问题、优化参数,并实现高效模型微调。


2. workdirs 目录概览与生成机制

2.1 目录位置与作用

workdirs/是该 OCR 模型在执行“训练微调”任务时自动生成的工作空间,位于项目根目录下:

/root/cv_resnet18_ocr-detection/ ├── workdirs/ ← 训练相关输出集中地 │ └── exp_20260105_143022/ │ ├── config.yaml # 训练配置 │ ├── log.txt # 主训练日志 │ ├── checkpoints/ # 权重保存 │ ├── tensorboard/ # 可视化日志(如有) │ └── eval_results/ # 验证集评估结果

核心功能:记录每一次训练任务的完整上下文,包括超参配置、训练日志、模型权重、评估指标等,便于复现和调试。

2.2 命名规则与时间戳解析

每次启动训练,系统会以当前时间创建一个独立子目录,命名格式为:

exp_YYYYMMDD_HHMMSS

例如:

  • exp_20260105_143022表示 2026年1月5日 14点30分22秒发起的训练任务

这种设计确保了多轮训练不会覆盖历史数据,支持后续横向对比不同实验的效果。


3. 核心子目录与文件详解

3.1 config.yaml:训练配置快照

这是训练开始前从 WebUI 界面读取并持久化的参数集合,内容如下所示:

train_data_dir: /root/custom_data batch_size: 8 num_epochs: 5 learning_rate: 0.007 input_size: [800, 800] backbone: resnet18 optimizer: SGD scheduler: StepLR

用途说明

  • ✅ 查看实际使用的 Batch Size、学习率等关键参数
  • ✅ 排查配置错误(如路径拼写、数值越界)
  • ✅ 支持实验复现:可直接加载此配置重新运行相同实验

建议做法:每次训练后备份重要config.yaml文件,用于建立实验管理档案。


3.2 log.txt:主训练日志文件

这是诊断训练过程的核心日志,采用标准文本格式逐行输出,典型内容如下:

[INFO] Starting training at 2026-01-05 14:30:22 [CONFIG] Using device: cuda:0 (GPU detected) [DATA] Loading dataset from /root/custom_data [DATA] Train samples: 456 | Test samples: 120 [TRAIN] Epoch 1/5, Iter 0/57, Loss: 1.876, LR: 0.007000 [TRAIN] Epoch 1/5, Iter 10/57, Loss: 1.543, LR: 0.007000 [TRAIN] Epoch 1/5, Iter 20/57, Loss: 1.321, LR: 0.007000 [VAL] Epoch 1 finished. F-score: 0.682, Precision: 0.701, Recall: 0.664 [TRAIN] Epoch 2/5, Iter 0/57, Loss: 1.209, LR: 0.007000 ... [SAVE] Best model saved to checkpoints/best_model.pth (F-score improved) [INFO] Training completed successfully.
日志关键字段解读:
字段含义关注重点
[TRAIN]训练阶段损失观察 Loss 是否稳定下降
[VAL]验证阶段指标F-score/Precision/Recall 判断泛化能力
F-score综合准确率指标越高越好,>0.8 为良好
[SAVE]模型保存提示确认最优模型已存档
[ERROR][FAIL]错误信息必须排查的根本原因
实战技巧:实时监控日志流

可通过以下命令动态查看日志更新:

tail -f workdirs/exp_20260105_143022/log.txt

结合grep过滤关键信息:

# 查看所有验证结果 grep "\[VAL\]" workdirs/exp_20260105_143022/log.txt # 检查是否有报错 grep -i "error\|fail\|exception" workdirs/exp_20260105_143022/log.txt

3.3 checkpoints/:模型权重存储目录

该目录保存训练过程中生成的所有.pth权重文件,典型结构如下:

checkpoints/ ├── best_model.pth # 最佳模型(按 F-score 保存) ├── last_model.pth # 最终轮次模型 ├── epoch_3.pth # 第3轮中间检查点(可选) └── backup_epoch_5.pth # 最终轮次备份

文件用途说明

  • best_model.pth:推荐用于推理部署的最终模型
  • last_model.pth:可用于继续训练(断点续训)
  • 中间 checkpoint:支持训练中断恢复或回滚到特定轮次

⚠️ 注意:WebUI “ONNX 导出” 功能默认使用best_model.pth进行转换,请确保其存在且性能达标。


3.4 eval_results/:验证集详细输出

该目录包含每轮验证后的预测结果与真实标签对比,常见文件有:

eval_results/ ├── predictions.json # 所有预测框与文本 ├── ground_truth.json # 真实标注数据 ├── metrics_per_image/ # 按图统计精度 │ ├── 3.jpg_precision.txt │ └── 3.jpg_recall.txt └── confusion_matrix.png # 类别混淆矩阵(若有多分类)

这些文件可用于:

  • 分析漏检(Recall 低)或误检(Precision 低)的具体样本
  • 定制后处理策略(如阈值调整、NMS 参数优化)

3.5 tensorboard/(可选):可视化训练曲线

如果项目启用了 TensorBoard 支持,则会生成该目录,包含事件日志文件:

tensorboard/ └── events.out.tfevents.123456789

可通过以下命令启动可视化服务:

tensorboard --logdir workdirs/exp_20260105_143022/tensorboard --port=6006

浏览器访问http://服务器IP:6006即可查看:

  • 训练 Loss 曲线
  • F-score、Precision、Recall 变化趋势
  • 学习率衰减过程

💡 提示:即使 WebUI 无图形展示,也可通过 TensorBoard 获取专业级训练分析能力。


4. 如何通过日志判断训练质量?

4.1 正常训练流程的日志特征

一个健康的训练过程应具备以下特点:

  1. Loss 持续下降:初期下降快,后期趋于平稳
  2. F-score 逐步上升:每轮验证后均有提升或保持高位
  3. 出现[SAVE] Best model saved提示
  4. 无异常中断或 CUDA Out of Memory 报错

示例片段:

[VAL] Epoch 1 finished. F-score: 0.682 [VAL] Epoch 2 finished. F-score: 0.745 ← 上升 ✓ [VAL] Epoch 3 finished. F-score: 0.791 ← 上升 ✓ [SAVE] Best model saved to checkpoints/best_model.pth

4.2 常见异常日志模式及应对方案

异常现象日志表现解决方法
数据加载失败[ERROR] File not found: train_images/1.jpg检查train_list.txt路径是否正确
标注格式错误[ERROR] Invalid box format in 1.txt确保 txt 文件为x1,y1,x2,y2,...,text格式
内存溢出CUDA out of memory减小batch_size至 4 或 2
损失不降Loss stuck around 2.0+ for many iterations检查学习率是否过高或过低
全部漏检F-score: 0.000检查图像预处理是否破坏文本结构

🔍 故障排查优先顺序:日志 → 配置 → 数据路径 → 标注格式 → GPU资源


5. 工程实践建议:高效利用 workdirs

5.1 建立实验编号管理系统

建议手动为重要实验添加符号链接,方便追踪:

ln -s workdirs/exp_20260105_143022 workdirs/exp_v1_baseline ln -s workdirs/exp_20260106_091233 workdirs/exp_v2_augmented

这样可以避免记忆复杂时间戳,提升团队协作效率。

5.2 自动归档脚本示例

编写简单脚本定期压缩旧实验,节省磁盘空间:

#!/bin/bash # archive_old_experiments.sh for dir in workdirs/exp_*; do if [ -d "$dir" ]; then exp_name=$(basename $dir) tar -czf "${exp_name}.tar.gz" "$dir" rm -rf "$dir" echo "Archived $exp_name" fi done

5.3 结合 ONNX 导出验证效果

训练完成后,建议立即导出 ONNX 模型并在测试集上验证:

python onnx_inference_test.py \ --onnx-model outputs/model_800x800.onnx \ --test-dir /root/custom_data/test_images

确认导出模型推理结果与训练日志中的 F-score 一致,防止部署偏差。


6. 总结

workdirs/目录是cv_resnet18_ocr-detection模型训练微调的核心输出区,掌握其结构对于高效开发至关重要。本文系统梳理了该目录的组成与使用方法:

  • config.yaml:记录训练配置,支持复现实验
  • log.txt:主日志文件,用于监控训练进度与诊断问题
  • checkpoints/:存放最佳与最终模型权重
  • eval_results/:提供细粒度评估数据
  • tensorboard/:可选的可视化分析工具

通过合理解析workdirs/中的信息,开发者不仅能回答“训练日志在哪看”这一基础问题,更能深入理解模型行为、优化训练策略,并构建可重复、可追溯的 AI 开发流程。


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/9 13:33:33

CAM++格式兼容性指南:MP3、M4A等转WAV技巧

CAM格式兼容性指南:MP3、M4A等转WAV技巧 1. 背景与问题引入 在使用 CAM 说话人识别系统 进行语音比对或特征提取时,音频文件的格式兼容性是影响系统稳定性和识别准确率的关键因素之一。尽管该系统理论上支持多种常见音频格式(如 MP3、M4A、…

作者头像 李华
网站建设 2026/2/8 2:16:28

3分钟搞定内核级Root隐藏:SUSFS4KSU模块完全实战指南

3分钟搞定内核级Root隐藏:SUSFS4KSU模块完全实战指南 【免费下载链接】susfs4ksu-module An addon root hiding service for KernelSU 项目地址: https://gitcode.com/gh_mirrors/su/susfs4ksu-module 还在为Root权限被检测而烦恼吗?&#x1f914…

作者头像 李华
网站建设 2026/2/11 14:42:04

UI-TARS桌面版智能助手:从零开始打造你的AI工作伙伴

UI-TARS桌面版智能助手:从零开始打造你的AI工作伙伴 【免费下载链接】UI-TARS-desktop A GUI Agent application based on UI-TARS(Vision-Lanuage Model) that allows you to control your computer using natural language. 项目地址: https://gitcode.com/GitH…

作者头像 李华
网站建设 2026/2/10 9:49:27

MonitorControl:重新定义macOS外接显示器的控制体验

MonitorControl:重新定义macOS外接显示器的控制体验 【免费下载链接】MonitorControl MonitorControl/MonitorControl: MonitorControl 是一款开源的Mac应用程序,允许用户直接控制外部显示器的亮度、对比度和其他设置,而无需依赖原厂提供的软…

作者头像 李华
网站建设 2026/2/9 20:22:57

亲测通义千问2.5-7B-Instruct:编程与数学能力实测分享

亲测通义千问2.5-7B-Instruct:编程与数学能力实测分享 近年来,大语言模型在代码生成、数学推理等复杂任务上的表现持续突破。作为通义千问系列最新迭代的指令调优模型,Qwen2.5-7B-Instruct 在多个专业领域实现了显著提升,尤其在编…

作者头像 李华
网站建设 2026/2/9 9:54:18

Qwen-Image-2512-ComfyUI常见问题解答,新手必读

Qwen-Image-2512-ComfyUI常见问题解答,新手必读 1. 引言 1.1 使用背景与核心价值 随着AI图像生成技术的快速发展,阿里通义千问团队推出的 Qwen-Image-2512 模型成为当前极具竞争力的开源图像编辑方案之一。该模型基于强大的 Qwen2.5-VL 视觉语言架构&…

作者头像 李华