class_docstr: One critic is shared across all sub-steps or actors (default to use for standard gym-style environments).
  
  In multi-step and multi-agent scenarios, observations from different sub-steps are merged into one.
  Observation keys common across multiple sub-steps are expected to have the same value and are
  present only once in the resulting dictionary.
  
  Can be instantiated via the
  :class:`~maze.perception.models.critics.shared_state_critic_composer.SharedStateCriticComposer`.
class_docstr_tok: ["One","critic","is","shared","across","all","sub-steps","or","actors","(","default","to","use","for","standard","gym-style","environments",")",".","In","multi-step","and","multi-agent","scenarios",",","observations","from","different","sub-steps","are","merged","into","one",".","Observation","keys","common","across","multiple","sub-steps","are","expected","to","have","the","same","value","and","are","present","only","once","in","the","resulting","dictionary",".","Can","be","instantiated","via","the",":","class",":","`","~maze.perception.models.critics.shared_state_critic_composer.SharedStateCriticComposer","`","."]
docstr: There is a single shared critic network.
docstr_tok: ["There","is","a","single","shared","critic","network","."]
code: def num_critics(self) -> int:
      """There is a single shared critic network."""
      return 1
  
imports: from abc import abstractmethod
  from typing import Mapping, Union, List, Dict
  import torch
  from gym import spaces
  from torch import nn
  from maze.core.agent.state_critic import StateCritic
  from maze.core.agent.state_critic_input_output import StateCriticStepOutput, StateCriticOutput, StateCriticInput
  from maze.core.agent.torch_model import TorchModel
  from maze.core.annotations import override
  from maze.core.env.observation_conversion import ObservationType
  from maze.core.env.structured_env import StepKeyType
  from maze.perception.perception_utils import convert_to_torch, flatten_spaces, stack_and_flatten_spaces
label_desc: Use image node_id 4 for calling the TorchSharedStateCritic obj's underlying member method code with example usage: obj.num_critics() and returns: int