Detectron2 API 之 config | 十五
本文是全系列中第8 / 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.config package
class detectron2.config.CfgNode(init_dict=None, key_list=None, new_allowed=False)
- 源代码:https://detectron2.readthedocs.io/_modules/detectron2/config/config.html#CfgNode
- 基类: fvcore.common.config.CfgNode
-
与fvcore.common.config.CfgNode相同,但不同之处在于:
- 默认情况下使用不安全的Yaml加载。
请注意,这可能会导致任意代码执行:在手动检查文件内容之前,切勿从不受信任的源中加载配置文件。 - 支持配置版本控制。
尝试合并旧配置时,它将自动转换旧配置。
merge_from_file(cfg_filename: str, allow_unsafe: bool = True) → None
dump(*args, **kwargs)
- 返回值:str –配置的yaml字符串表示形式
DEPRECATED_KEYS= '__deprecated_keys__'
IMMUTABLE= '__immutable__'
NEW_ALLOWED= '__new_allowed__'
RENAMED_KEYS='__renamed_keys__'
__init__(init_dict=None, key_list=None, new_allowed=False)
- 参数:
- init_dict(dict)–可能嵌套的字典,用于初始化CfgNode。
- key_list(list [ str ])–名称列表,从根目录索引此CfgNode。当前仅用于记录目的。
- new_allowed(bool)–与其他配置合并时是否允许添加新密钥。
clear() → None,从D删除所有项目
clone()
- 递归复制此CfgNode。
copy() → D的浅副本
defrost()
- 使此CfgNode及其所有子级可变。
freeze()
- 使此CfgNode及其所有子代不变。
fromkeys()
- 使用可迭代的键并将值设置为value创建一个新字典。
get()
- 如果key在字典中,则返回key的值,否则返回默认值。
is_frozen()
- 返回可变性。
is_new_allowed()
items() → 提供D的项目视图的类集合对象
key_is_deprecated(full_key)
- 测试是否不赞成使用密钥。
key_is_renamed(full_key)
- 测试密钥是否被重命名。
keys() → 提供D键视图的类集合对象
class method load_cfg(cfg_file_obj_or_str)
-
加载cfg:param cfg_file_obj_or_str:支持从以下位置加载:
- 由YAML文件支持的文件对象
- 由Python源文件支持的文件对象,该文件对象导出dict或CfgNode属性”cfg”
- 可以解析为有效YAML的字符串
static load_yaml_with_base(filename: str, allow_unsafe: bool = False)
就像yaml.load(open(filename))一样,但是从其继承属性
- 参数:
- filename(str):当前配置的文件名。将用于查找基本配置文件。
- allow_unsafe(bool):是否允许使用yaml.unsafe_load加载配置文件 。
- 返回值:(字典) 已加载的Yaml
merge_from_list(cfg_list: list)
- 参数: cfg_list(list):要合并的配置列表。
merge_from_other_cfg(cfg_other)
- 参数: cfg_other(CfgNode)要合并的配置。
pop(k[, d]) → v, remove specified key and return the corresponding value.
- 如果找不到键,则返回d(如果给出),否则引发KeyError
popitem() → (k, v), remove and return some (key, value) pair as a
- 2元组; 但如果D为空,则引发KeyError。
raise_key_rename_error(full_key)
register_deprecated_key(key)
- 注册密钥(例如FOO.BAR)已弃用的选项。合并不赞成使用的密钥时,将生成警告,并且该密钥将被忽略。
register_renamed_key(old_name, new_name, message=None)
- 将密钥注册为从old_name重命名为new_name。合并重命名的密钥时,会引发异常,警告用户该密钥已被重命名。
setdefault()
- 如果key不在字典中,则插入具有默认值的key。
-
如果key在字典中,则返回key的值,否则返回默认值。
update([E, ]**F) → None. Update D from dict/iterable E and F.
- 如果E存在并且具有.keys()方法,则执行:for k in E: D[k] = E[k]
- 如果E存在并且缺乏.keys()方法,则执行: for k, v in E: D[k] = v
- 在任一情况下,都跟着: for k in F: D[k] = F[k]
values() → 提供D值视图的对象
detectron2.config.get_cfg() → detectron2.config.config.CfgNode
- 源代码:https://detectron2.readthedocs.io/_modules/detectron2/config/config.html#get_cfg
- 获取默认配置的副本。
- 返回值: 一个detectron2 CfgNode实例。
detectron2.config.set_global_cfg(cfg: detectron2.config.config.CfgNode) → None
- 源代码:https://detectron2.readthedocs.io/_modules/detectron2/config/config.html#set_global_cfg
让全局配置指向给定的cfg。
假定给定的”cfg”具有键”KEY”,在调用 set_global_cfg(cfg)之后,可以通过以下方式访问该键:
from detectron2.config import global_cfg
print(global_cfg.KEY)
通过使用hacky全局配置,你可以在任何地方访问这些配置,而不必将配置对象或值传递到代码中。这是为快速原型设计/研究探索而引入的一项功能强大的功能。
detectron2.config.downgrade_config(cfg: detectron2.config.config.CfgNode, to_version: int) → detectron2.config.config.CfgNode
- 源代码:https://detectron2.readthedocs.io/_modules/detectron2/config/compat.html#downgrade_config
- 将配置从当前版本降级到旧版本。
-
参数:
- cfg(CfgNode)
- to_version(int)
注意
由于不同版本中的功能不同,通常无法对任意配置进行普遍降级。降级的目的仅是恢复旧版本中的默认设置,从而允许它加载旧的部分Yaml配置。因此,仅当无法进行一般降级时,实现才需要填写旧版本中的默认值。
detectron2.config.upgrade_config(cfg: detectron2.config.config.CfgNode, to_version: Optional[int] = None) → detectron2.config.config.CfgNode
- 源代码:https://detectron2.readthedocs.io/_modules/detectron2/config/compat.html#upgrade_config
- 将配置从当前版本升级到更高版本。
-
参数:
- cfg(CfgNode)
- to_version(int)默认为最新版本。
原文链接:https://detectron2.readthedocs.io/modules/config.html
原创文章,作者:磐石,如若转载,请注明出处:https://panchuang.net/2020/06/25/detectron2-api-%e4%b9%8b-config-%e5%8d%81%e4%ba%94/