analyze_logs.py
是 MMDetection 提供的工具之一,用于分析训练日志文件(通常是由 train.py
生成的 JSON 格式日志文件)。这个工具可以生成各种分析图表,用于帮助用户了解模型训练过程中的行为。
使用方法
-
准备日志文件
确保你已经使用train.py
生成了日志文件,并且这些日志文件以 JSON 格式保存(通过--json
参数启用 JSON 日志)。 -
运行
analyze_logs.py
你可以通过以下命令调用该脚本:
python tools/analysis_tools/analyze_logs.py <log_file> [optional_arguments]
其中 <log_file>
是你的训练日志文件路径。
常用参数说明
1. 生成训练曲线
python tools/analysis_tools/analyze_logs.py plot_curve <log_file> [--keys KEYS] [--title TITLE] [--legend LEGEND] [--out OUT]
参数说明:
<log_file>
:日志文件路径。--keys
:指定要绘制的曲线,比如loss
,accuracy
,mAP
等。多个值用逗号分隔。--title
:图表标题。--legend
:图例名称,多个值用逗号分隔。--out
:生成的图片文件路径。
示例:
python tools/analysis_tools/analyze_logs.py plot_curve my_log.json --keys loss --out loss_curve.png
2. 比较多个日志文件
python tools/analysis_tools/analyze_logs.py plot_curve <log_file1> <log_file2> ... [--keys KEYS] [--legend LEGEND]
参数说明:
- 可以同时比较多个日志文件,例如多次实验的结果。
--legend
用于给每个日志文件添加图例标注。
示例:
python tools/analysis_tools/analyze_logs.py plot_curve log1.json log2.json --keys loss --legend exp1,exp2
3. 计算训练时长
python tools/analysis_tools/analyze_logs.py cal_train_time <log_file>
参数说明:
- 直接输出每个 epoch 的训练时间以及总训练时间。
示例:
python tools/analysis_tools/analyze_logs.py cal_train_time my_log.json
输出结果
- 训练曲线图:保存为图片文件(如果指定了
--out
参数)。 - 训练时长:直接打印在终端。
注意事项
- 日志文件格式:确保日志文件是 JSON 格式,通常由
train.py
使用--json
参数生成。 - 赖库:
analyze_logs.py
需要 matplotlib 等库来绘制图表,请确保这些库已经安装。
pip install matplotlib
参考
https://mmdetection.readthedocs.io/en/v2.10.0/useful_tools.html
MMDetection实用工具详解(上):日志分析、结果分析、混淆矩阵_mmdetection混淆矩阵-优快云博客
https://zhuanlan.zhihu.com/p/702210475