Detectron2 开始训练 | 八
本文是全系列中第9 / 15篇:Detectron2
- Detectron2 使用自定义数据集 | 四
- Detectron2 基准测试 | 十二
- Detectron2 使用自定义数据加载器 | 五
- Detectron2 与其他库的兼容性 | 十三
- Detectron2 使用模型 | 六
- Detectron2 API 之 checkpoint | 十四
- Detectron2 编写模型 | 七
- Detectron2 API 之 config | 十五
- Detectron2 开始训练 | 八
- Detectron2 安装 | 一
- Detectron2 进行评估 | 九
- Detectron2 入门 | 二
- Detectron2 配置 | 十
- Detectron2 扩展默认值 | 三
- Detectron2 部署 | 十一
作者|facebookresearch
编译|Flin
来源|Github
训练
从前面的教程中,你现在可能已经有了一个自定义模型和数据加载器。
你可以自由创建自己的优化器,并编写训练逻辑:使用PyTorch通常很容易,并且使研究人员可以看到整个训练逻辑更清晰并具有完全控制权。
tools/plain_train_net.py中提供了一个这样的示例。
(tools/plain_train_net.py:https://github.com/facebookresearch/detectron2/blob/master/tools/plain_train_net.py)
我们还提供了标准化的”trainer”抽象,最小hook系统(https://detectron2.readthedocs.io/modules/engine.html#detectron2.engine.HookBase) ,这有助于简化标准的训练类型。
你可以使用 SimpleTrainer().train() ,它为单次成本单优化器单数据源训练提供了最小的抽象。内置train_net.py
脚本使用 DefaultTrainer().train(),它包含一个人们可能希望选择的更多标准默认行为。这也意味着它不太可能支持你在研究过程中可能想要的一些非标准行为。
– SimpleTrainer().train():
https://detectron2.readthedocs.io/modules/engine.html#detectron2.engine.SimpleTrainer
– DefaultTrainer().train()
https://detectron2.readthedocs.io/modules/engine.html#detectron2.engine.defaults.DefaultTrainer
要自定义训练循环,你可以从tools/plain_train_net.py开始,或查看DefaultTrainer的源代码,并用新参数或新hook覆盖其某些行为。
指标记录
在训练过程中,将使用集中式EventStorage记录指标。你可以使用以下代码对其进行访问并记录指标:
(EventStorage:https://detectron2.readthedocs.io/modules/utils.html#detectron2.utils.events.EventStorage)
from detectron2.utils.events import get_event_storage
# 在模型中:
if self.training:
value = #根据输入计算值
storage = get_event_storage()
storage.put_scalar("some_accuracy", value)
有关更多详细信息,请参阅其文档。
原文链接:https://detectron2.readthedocs.io/tutorials/training.html
原创文章,作者:磐石,如若转载,请注明出处:https://panchuang.net/2020/05/31/detectron2-%e5%bc%80%e5%a7%8b%e8%ae%ad%e7%bb%83-%e5%85%ab/