Shortcuts

Config

class mmengine.config.Config(cfg_dict=None, cfg_text=None, filename=None, env_variables=None, format_python_code=True)[source]

A facility for config and config files.

It supports common file formats as configs: python/json/yaml. Config.fromfile can parse a dictionary from a config file, then build a Config instance with the dictionary. The interface is the same as a dict object and also allows access config values as attributes.

Parameters:
  • cfg_dict (dict, optional) – A config dictionary. Defaults to None.

  • cfg_text (str, optional) – Text of config. Defaults to None.

  • filename (str or Path, optional) – Name of config file. Defaults to None.

  • format_python_code (bool) – Whether to format Python code by yapf. Defaults to True.

  • env_variables (dict | None) –

Here is a simple example:

Examples

>>> cfg = Config(dict(a=1, b=dict(b1=[0, 1])))
>>> cfg.a
1
>>> cfg.b
{'b1': [0, 1]}
>>> cfg.b.b1
[0, 1]
>>> cfg = Config.fromfile('tests/data/config/a.py')
>>> cfg.filename
"/home/username/projects/mmengine/tests/data/config/a.py"
>>> cfg.item4
'test'
>>> cfg
"Config [path: /home/username/projects/mmengine/tests/data/config/a.py]
:"
"{'item1': [1, 2], 'item2': {'a': 0}, 'item3': True, 'item4': 'test'}"

You can find more advance usage in the config tutorial.

static auto_argparser(description=None)[source]

Generate argparser from config file automatically (experimental)

dump(file=None)[source]

Dump config to file or return config text.

Parameters:
  • file (str or Path, optional) – If not specified, then the object

  • str (is dumped to a) –

  • filename. (otherwise to a file specified by the) –

  • None. (Defaults to) –

Returns:

Config text.

Return type:

str or None

property env_variables: dict

get used environment variables.

property filename: str

get file name of config.

static fromfile(filename, use_predefined_variables=True, import_custom_modules=True, use_environment_variables=True, lazy_import=None, format_python_code=True)[source]

Build a Config instance from config file.

Parameters:
  • filename (str or Path) – Name of config file.

  • use_predefined_variables (bool, optional) – Whether to use predefined variables. Defaults to True.

  • import_custom_modules (bool, optional) – Whether to support importing custom modules in config. Defaults to None.

  • use_environment_variables (bool, optional) – Whether to use environment variables. Defaults to True.

  • lazy_import (bool) – Whether to load config in lazy_import mode. If it is None, it will be deduced by the content of the config file. Defaults to None.

  • format_python_code (bool) – Whether to format Python code by yapf. Defaults to True.

Returns:

Config instance built from config file.

Return type:

Config

static fromstring(cfg_str, file_format)[source]

Build a Config instance from config text.

Parameters:
  • cfg_str (str) – Config text.

  • file_format (str) – Config file format corresponding to the config str. Only py/yml/yaml/json type are supported now!

Returns:

Config object generated from cfg_str.

Return type:

Config

merge_from_dict(options, allow_list_keys=True)[source]

Merge list into cfg_dict.

Merge the dict parsed by MultipleKVAction into this cfg.

Parameters:
  • options (dict) – dict of configs to merge from.

  • allow_list_keys (bool) – If True, int string keys (e.g. ‘0’, ‘1’) are allowed in options and will replace the element of the corresponding index in the config if the config is a list. Defaults to True.

Return type:

None

Examples

>>> from mmengine import Config
>>> #  Merge dictionary element
>>> options = {'model.backbone.depth': 50, 'model.backbone.with_cp': True}
>>> cfg = Config(dict(model=dict(backbone=dict(type='ResNet'))))
>>> cfg.merge_from_dict(options)
>>> cfg._cfg_dict
{'model': {'backbone': {'type': 'ResNet', 'depth': 50, 'with_cp': True}}}
>>> # Merge list element
>>> cfg = Config(
>>>     dict(pipeline=[dict(type='LoadImage'),
>>>                    dict(type='LoadAnnotations')]))
>>> options = dict(pipeline={'0': dict(type='SelfLoadImage')})
>>> cfg.merge_from_dict(options, allow_list_keys=True)
>>> cfg._cfg_dict
{'pipeline': [{'type': 'SelfLoadImage'}, {'type': 'LoadAnnotations'}]}
property pretty_text: str

get formatted python config text.

property text: str

get config text.

to_dict(keep_imported=False)[source]

Convert all data in the config to a builtin dict.

Parameters:

keep_imported (bool) – Whether to keep the imported field. Defaults to False

If you import third-party objects in the config file, all imported objects will be converted to a string like torch.optim.SGD

Read the Docs v: v0.10.4
Versions
latest
stable
v0.10.4
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.1
v0.9.0
v0.8.5
v0.8.4
v0.8.3
v0.8.2
v0.8.1
v0.8.0
v0.7.4
v0.7.3
v0.7.2
v0.7.1
v0.7.0
v0.6.0
v0.5.0
v0.4.0
v0.3.0
v0.2.0
Downloads
On Read the Docs
Project Home
Builds

Free document hosting provided by Read the Docs.