Detectron2 配置 | 十
本文是全系列中第13 / 15篇:Detectron2
- Detectron2 使用自定义数据集 | 四
- Detectron2 基准测试 | 十二
- Detectron2 使用自定义数据加载器 | 五
- Detectron2 与其他库的兼容性 | 十三
- Detectron2 使用模型 | 六
- Detectron2 API 之 checkpoint | 十四
- Detectron2 编写模型 | 七
- Detectron2 API 之 config | 十五
- Detectron2 开始训练 | 八
- Detectron2 安装 | 一
- Detectron2 进行评估 | 九
- Detectron2 入门 | 二
- Detectron2 配置 | 十
- Detectron2 扩展默认值 | 三
- Detectron2 部署 | 十一
作者|facebookresearch
编译|Flin
来源|Github
使用配置
Detectron2的配置系统使用yaml和yacs(https://github.com/rbgirshick/yacs)。 除了访问和更新配置的基本操作外,我们还提供以下额外功能:
- 配置中可以包含”BASE:base.yaml”字段,该字段将首先加载基本配置。如果存在任何冲突,则基本配置中的值将在子配置中被覆盖。我们为标准模型架构提供了一些基本配置。
- 我们提供配置版本控制,以实现向后兼容。如果你的配置文件使用诸如”VERSION:2″之类的配置行进行了版本控制,即使我们将来重命名某些密钥,detectron2仍会识别它。
使用配置
CfgNode对象的一些基本用法如下所示:
from detectron2.config import get_cfg
cfg = get_cfg()#获取detectron2的默认配置
cfg.xxx = yyy#为你自己的自定义组件添加新配置
cfg.merge_from_file("my_cfg.yaml")#从文件加载值
cfg.merge_from_list(["MODEL.WEIGHTS","weights.pth"])#也可以从str列表中加载值
print(cfg.dump())#打印格式化的配置
要查看detectron2中可用配置的列表,请参见Config References(https://detectron2.readthedocs.io/modules/config.html#config-references).
配置最佳实践
- 将你编写的配置视为”代码”:避免复制或复制它们;使用
_BASE_
共享配置之间的共同部分。 -
使你编写的配置保持简单:不要包含不会影响实验设置的键。
-
在你的配置(或基本配置)中保留一个版本号,例如
VERSION:2
,
向后兼容。读取没有版本号的配置时,我们会打印警告。官方配置不包含版本号,因为它们旨在始终保持最新。 -
保存完整的配置以及训练有素的模型,然后使用它来进行推理。这对于配置定义可能发生的更改更健壮(例如,如果更改了默认值),尽管我们将尝试避免此类更改。
原文链接:https://detectron2.readthedocs.io/tutorials/configs.html
原创文章,作者:磐石,如若转载,请注明出处:https://panchuang.net/2020/05/31/detectron2-%e9%85%8d%e7%bd%ae-%e5%8d%81/