Documentation
中文 (简体)
搜索文档…
⌃K

MMDetection

MMDetectionOpenMMLab 旗下一款基于 PyTorch 的开源目标检测工具箱,提供了可进行组合的模块化 API 设计,便于您轻松构建自定义目标检测与细分管道。
Weights & Biases 已通过专门的 MMDetWandbHook 直接集成至 MMDetection 中,可用于:
✅ 记录训练和评估指标。
✅ 记录多版本模型检查点。
✅ 使用真实数据边界框记录多版本验证数据集。
✅ 对模型预测进行记录和可视化。

🔥上手

注册并登录 wandb

1. 注册免费账户
2. Pip安装wandb库
3. 如需登录训练脚本,则需要在 www.wandb.ai 中登录账户,然后在授权页面中查看API密钥
如果您是首次使用 Weights & Biases,可以看看我们的快速上手指南
Command Line
Notebooj
pip install wandb
wandb login
!pip install wandb
wandb.login()

使用 MMDetWandbHook

您可通过在配置系统的MMDetection log_config 方法中添加MMDetWandbHook来开始使用Weights & Biases
MMDetection v2.25.0 及以上版本支持 MMDetWandbHook
import wandb
...
config_file = 'mmdetection/configs/path/to/config.py'
cfg = Config.fromfile(config_file)
cfg.log_config.hooks = [
dict(type='TextLoggerHook'),
dict(type='MMDetWandbHook',
init_kwargs={'project': 'mmdetection'},
interval=10,
log_checkpoint=True,
log_checkpoint_metadata=True,
num_eval_images=100,
bbox_score_thr=0.3)]
名称
描述
Text
init_kwargs
(dict) 传递给 wandb.init 以启动W&B运行的 dict。
interval
(int) 记录间隔(每k次迭代)。默认值为 50
log_checkpoint
(bool) 在每次检查点间隔时将检查点保存为 W&B 工件。其可用于模型版本控制,其中各版本均为检查点。默认值为False
log_checkpoint_metadata
(bool) 将在验证数据上计算的评估指标与检查点,以及当前epoch一起记录为该检查点的元数据。默认值为True
num_eval_images
(int) 需记录的验证图像数。如果为 0,则评估将不会被记录。默认值为100
bbox_score_thr
(float) 边界框分数阈值。默认值为0.3

📈
记录指标

使用MMDetWandbHook中的init_kwargs参数开始追踪训练和评估指标。该参数可接收键值对字典,然后将其传递给 wandb.init,控制运行中的哪些项目以及其他功能需要记录。
您可在此处查看适用于wandb.init的所有参数

🏁 检查点

您可通过使用MMDetWandbHook中的log_checkpoint=True参数来将这些检查点可靠地存储为 W&B 工件。此功能依赖于MMCV中周期性保存模型检查点的 CheckpointHook。时间周期由checkpoint_config.interval确定。
每个W&B账户中都自带100GB免费的存储数据集和模型存储空间
左侧窗格中显示了不同版本的检查点。您可从“文件”标签页中下载模型,或使用API来进行下载。

📣
带有元数据的检查点

如果将log_checkpoint_metadata设为 “True”,那么各检查点版本都将包含与其关联的元数据。此功能依赖于CheckpointHookEvalHookDistEvalHook。只有当检查点间隔可被评估间隔整除时才会记录元数据
记录的元数据将在“元数据”标签页中提供。

数据集与模型预测可视化

对数据集尤其是模型预测进行交互式可视化的能力有助于建立和调试出更好的模型。在MMDetWandbHook的帮助下,您可将验证数据记录为W&B表格,并为模型预测创建多个版本的W&B表格
num_eval_images参数控制着被记录为W&B表格的验证样本数量。下面是一些值得注意的地方:
  • 如果num_eval_images=0,那么验证数据与模型预测将不会被记录。
  • 如果 mmdet.core.train_detector API的 validate=False,那么验证数据与模型预测将不会被记录。
  • 如果 num_eval_images 值大于总的验证样本数量,那么会记录完整的验证数据集
val_data只会上传一次。run_<id>_predtable 与后续运行会引用已上传的数据以节约内存。val_data 的新版本只有在出现更改时才会创建

接下来的步骤

您是否想在自定义数据集上训练目标检测器 + 语义分割模型(Mask RCNN)如有需要,可以看看我们发布于Fully Connected上的《如何在 MMDetection使用Weights & Biases》W&B报告。