class_docstr: The view of a config dict where keys can be accessed like attribute, it also prevents
  naive modifications to the key-values.
  
  Parameters
  ----------
  config : dict
      The configuration dict.
  
  Attributes
  ----------
  __dict__ : type
      The internal config as a `__dict__`.
code: def __init__(self, value=None):
      super(ConfigDict, self).__init__()
      self.__dict__["_freeze"] = False
      if value is None:
          pass
      elif isinstance(value, dict):
          for key in value:
              self.__setitem__(key, value[key])
      else:
          raise TypeError("expected dict, given {}".format(type(value)))
      self.freeze()
  
imports: import copy
  import warnings
  import numpy
  import autogluon.core
  from ..estimators.base_estimator import BaseEstimator
  from ..estimators import SSDEstimator, FasterRCNNEstimator, YOLOv3Estimator, CenterNetEstimator
  from ..estimators import ImageClassificationEstimator
  from ..data.dataset import ObjectDetectionDataset
label_desc: Use image node_id 1 to create a new ConfigDict object from inherited base classes: dict with example: obj = ConfigDict(value)