class_docstr: Module connecting a critic torso to (transformed) observations/actions.
  
  This takes as input a `critic_network`, an `observation_network`, and an
  `action_network` and returns another network whose outputs are given by
  `critic_network(observation_network(o), action_network(a))`.
  
  The observations and actions passed to this module are assumed to have a batch
  dimension that match.
  
  Notes:
  - Either the `observation_` or `action_network` can be `None`, in which case
    the observation or action, resp., are passed to the critic network as is.
  - If all `critic_`, `observation_` and `action_network` are `None`, this
    module reduces to a simple `tf2_utils.batch_concat()`.
code: def __init__(
      self,
      critic_network: Optional[TensorTransformation] = None,
      observation_network: Optional[TensorTransformation] = None,
      action_network: Optional[TensorTransformation] = None,
  ):
      self._critic_network = critic_network
      self._observation_network = observation_network
      self._action_network = action_network
      super().__init__(name="critic_multiplexer")
  
file_path: acme/acme/tf/networks/multiplexers.py
imports: from typing import Callable, Optional, Union
  from acme import types
  from acme.tf import utils
  import sonnet
  import tensorflow
  import tensorflow_probability
label_desc: Use image node_id 1 to create a new CriticMultiplexer object from inherited base classes: snt with example: obj = CriticMultiplexer(critic_network, observation_network, action_network)