code: def _parse_opt(self, opts):
      config = {}
      if not opts:
          return config
      for s in opts:
          s = s.strip()
          k, v = s.split("=", 1)
          if "." not in k:
              config[k] = yaml.load(v, Loader=yaml.Loader)
          else:
              keys = k.split(".")
              if keys[0] not in config:
                  config[keys[0]] = {}
              cur = config[keys[0]]
              for idx, key in enumerate(keys[1:]):
                  if idx == len(keys) - 2:
                      cur[key] = yaml.load(v, Loader=yaml.Loader)
                  else:
                      cur[key] = {}
                      cur = cur[key]
      return config
  
file_path: PaddleDetection/ppdet/utils/cli.py
imports: from argparse import ArgumentParser, RawDescriptionHelpFormatter
  import yaml
  import re
  from ppdet.core.workspace import get_registered_modules, dump_value
label_desc: Use image node_id 3 for calling the ArgsParser obj's underlying member method code with example usage: obj._parse_opt(opts) and returns: config, config