class_docstr: First sub step gets a regular critic, subsequent sub-steps predict a delta w.r.t. to the previous critic.
  Can be instantiated via the
  :class:`~maze.perception.models.critics.delta_state_critic_composer.DeltaStateCriticComposer`.
class_docstr_tok: ["First","sub","step","gets","a","regular","critic",",","subsequent","sub-steps","predict","a","delta","w.r.t",".","to","the","previous","critic",".","Can","be","instantiated","via","the",":","class",":","`","~maze.perception.models.critics.delta_state_critic_composer.DeltaStateCriticComposer","`","."]
docstr: Predictions depend on previous sub-steps, thus this method is not supported in the delta state critic.
          
docstr_tok: ["Predictions","depend","on","previous","sub-steps",",","thus","this","method","is","not","supported","in","the","delta","state","critic","."]
code: def predict_value(
      self, observation: ObservationType, critic_id: Union[int, str]
  ) -> torch.Tensor:
      """Predictions depend on previous sub-steps, thus this method is not supported in the delta state critic."""
      raise NotImplemented
  
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 2 for calling the TorchDeltaStateCritic obj's underlying member method code with example usage: obj.predict_value(observation, critic_id) without return types