Detectron2 API 之 config | 十五

作者|facebookresearch 編譯|Flin 來源|Github

detectron2.config package

class detectron2.config.CfgNode(init_dict=None, key_list=None, new_allowed=False)
  1. 默認情況下使用不安全的Yaml加載。 請注意,這可能會導致任意代碼執行:在手動檢查文件內容之前,切勿從不受信任的源中加載配置文件。
  2. 支持配置版本控制。 嘗試合併舊配置時,它將自動轉換舊配置。
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

假定給定的"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

由於不同版本中的功能不同,通常無法對任意配置進行普遍降級。降級的目的僅是恢復舊版本中的默認設置,從而允許它加載舊的部分Yaml配置。因此,僅當無法進行一般降級時,實現才需要填寫舊版本中的默認值。

detectron2.config.upgrade_config(cfg: detectron2.config.config.CfgNode, to_version: Optional[int] = None) → detectron2.config.config.CfgNode

原文鏈接:https://detectron2.readthedocs.io/modules/config.html

歡迎關注磐創AI博客站: http://panchuang.net/

sklearn機器學習中文官方文檔: http://sklearn123.com/

歡迎關注磐創博客資源彙總站: http://docs.panchuang.net/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章