class_docstr: A configuration container that keeps track of references.
  
  `SharedObjectConfig` will automatically attach a shared object ID to any
  configs which are referenced more than once, allowing for proper shared
  object reconstruction at load time.
  
  In most cases, it would be more proper to subclass something like
  `collections.UserDict` or `collections.Mapping` rather than `dict` directly.
  Unfortunately, python's json encoder does not support `Mapping`s. This is
  important functionality to retain, since we are dealing with serialization.
  
  We should be safe to subclass `dict` here, since we aren't actually
  overriding any core methods, only augmenting with a new one for reference
  counting.
code: def __init__(self, base_config, object_id, **kwargs):
      self.ref_count = 1
      self.object_id = object_id
      super().__init__(base_config, **kwargs)
  
imports: import contextlib
  import inspect
  import json
  import threading
  import weakref
  from keras.api_export import keras_export
  from keras.saving import object_registration
label_desc: Use image node_id 1 to create a new SharedObjectConfig object from inherited base classes: dict with example: obj = SharedObjectConfig(base_config, object_id)