class_docstr: Base class for perception default model builders.
  
  :param modality_config: dictionary mapping perception modalities to blocks and block config parameters.
  :param observation_modality_mapping: A mapping of observation keys to perception modalities.
  :param shared_embedding_keys: The shared embedding keys to use as an input to the critic network where the value
      can be one of the following:
      - None, empty list or dict of empty lists: No shared embeddings are used.
      - A list of str values: The shared embedding keys to use for creating the critic network in each substep
      (the same keys).
      - A dict of lists: Here the keys have to refer to the step-keys of the environment, the corresponding lists
      specify the input keys to the critic network in this step.
class_docstr_tok: ["Base","class","for","perception","default","model","builders",".",":","param","modality_config",":","dictionary","mapping","perception","modalities","to","blocks","and","block","config","parameters",".",":","param","observation_modality_mapping",":","A","mapping","of","observation","keys","to","perception","modalities",".",":","param","shared_embedding_keys",":","The","shared","embedding","keys","to","use","as","an","input","to","the","critic","network","where","the","value","can","be","one","of","the","following",":","-","None",",","empty","list","or","dict","of","empty","lists",":","No","shared","embeddings","are","used",".","-","A","list","of","str","values",":","The","shared","embedding","keys","to","use","for","creating","the","critic","network","in","each","substep","(","the","same","keys",")",".","-","A","dict","of","lists",":","Here","the","keys","have","to","refer","to","the","step-keys","of","the","environment",",","the","corresponding","lists","specify","the","input","keys","to","the","critic","network","in","this","step","."]
code: def __init__(
      self,
      modality_config: Dict[str, Union[str, Dict[str, Any]]],
      observation_modality_mapping: Dict[str, str],
      shared_embedding_keys: Optional[
          Union[List[str], Dict[str, List[str]]]
      ],
  ):
      self.modality_config = modality_config
      self.observation_modality_mapping = observation_modality_mapping
  
      # Init shared embedding info
      self.shared_embedding_keys = shared_embedding_keys
      self.use_shared_embedding = None
  
file_path: maze/maze/perception/builders/base.py
imports: from abc import abstractmethod, ABC
  from typing import Dict, Union, Any, Optional, List, Iterable
  import numpy
  from gym import spaces
  from omegaconf import ListConfig, DictConfig
  from maze.core.env.structured_env import StepKeyType
  from maze.perception.blocks.inference import InferenceBlock
label_desc: Use image node_id 1 to create a new BaseModelBuilder object from inherited base classes: ABC with example: obj = BaseModelBuilder(modality_config, observation_modality_mapping, shared_embedding_keys)