class_docstr: Base class for configuring a `Model` instance.
  
  ModelConfigs are DL framework-agnostic.
  A `Model` (as a sub-component of an `RLModule`) is built via calling the
  respective ModelConfig's `build()` method.
  RLModules build their sub-components this way after receiving one or more
  `ModelConfig` instances from a Catalog object.
  
  However, `ModelConfig` is not restricted to be used only with Catalog or RLModules.
  Usage examples can be found in the individual Model classes', e.g.
  see `ray.rllib.core.models.configs::MLPHeadConfig`.
  
  Attributes:
      input_dims: The input dimensions of the network
      always_check_shapes: Whether to always check the inputs and outputs of the
          model for the specifications. Input specifications are checked on failed
          forward passes of the model regardless of this flag. If this flag is set
          to `True`, inputs and outputs are checked on every call. This leads to
          a slow-down and should only be used for debugging.
class_docstr_tok: ["Base","class","for","configuring","a","`","Model","`","instance",".","ModelConfigs","are","DL","framework-agnostic",".","A","`","Model","`","(","as","a","sub-component","of","an","`","RLModule","`",")","is","built","via","calling","the","respective","ModelConfig","'s","`","build","(",")","`","method",".","RLModules","build","their","sub-components","this","way","after","receiving","one","or","more","`","ModelConfig","`","instances","from","a","Catalog","object",".","However",",","`","ModelConfig","`","is","not","restricted","to","be","used","only","with","Catalog","or","RLModules",".","Usage","examples","can","be","found","in","the","individual","Model","classes","'",",","e.g",".","see","`","ray.rllib.core.models.configs",":",":MLPHeadConfig","`",".","Attributes",":","input_dims",":","The","input","dimensions","of","the","network","always_check_shapes",":","Whether","to","always","check","the","inputs","and","outputs","of","the","model","for","the","specifications",".","Input","specifications","are","checked","on","failed","forward","passes","of","the","model","regardless","of","this","flag",".","If","this","flag","is","set","to","`","True","`",",","inputs","and","outputs","are","checked","on","every","call",".","This","leads","to","a","slow-down","and","should","only","be","used","for","debugging","."]
docstr: Read-only `output_dims` are inferred automatically from other settings.
docstr_tok: ["Read-only","`","output_dims","`","are","inferred","automatically","from","other","settings","."]
code: def output_dims(self) -> Optional[Tuple[int]]:
      """Read-only `output_dims` are inferred automatically from other settings."""
      return None
  
imports: import abc
  from dataclasses import dataclass, field
  import functools
  from typing import Callable, Dict, List, Optional, Tuple, TYPE_CHECKING, Union
  import numpy
  from ray.rllib.models.torch.misc import same_padding, same_padding_transpose_after_stride, valid_padding
  from ray.rllib.models.utils import get_activation_fn, get_initializer_fn
  from ray.rllib.utils.annotations import ExperimentalAPI
label_desc: Use image node_id 2 for calling the ModelConfig obj's underlying member method code with example usage: obj.output_dims() and returns: None