docstr: Get a prediction from the agent with regard to the requested prediction_type.
  If the agent cannot predict this type of prediction_type, or if there is more than possible way to do so,
  raise a ValueException.
  
  :param states: The states to get a prediction for
  :param prediction_type: The type of prediction to get for the states. For example, the state-value prediction.
  :return: the predicted values
docstr_tok: ["Get","a","prediction","from","the","agent","with","regard","to","the","requested","prediction_type",".","If","the","agent","can","not","predict","this","type","of","prediction_type",",","or","if","there","is","more","than","possible","way","to","do","so",",","raise","a","ValueException",".",":","param","states",":","The","states","to","get","a","prediction","for",":","param","prediction_type",":","The","type","of","prediction","to","get","for","the","states",".","For","example",",","the","state-value","prediction",".",":","return",":","the","predicted","values"]
code: def get_predictions(
      self,
      states: List[Dict[str, np.ndarray]],
      prediction_type: PredictionType,
  ):
      """
      Get a prediction from the agent with regard to the requested prediction_type.
      If the agent cannot predict this type of prediction_type, or if there is more than possible way to do so,
      raise a ValueException.
  
      :param states: The states to get a prediction for
      :param prediction_type: The type of prediction to get for the states. For example, the state-value prediction.
      :return: the predicted values
      """
  
      predictions = self.networks[
          "main"
      ].online_network.predict_with_prediction_type(
          # states=self.dict_state_to_batches_dict(states, 'main'), prediction_type=prediction_type)
          states=states,
          prediction_type=prediction_type,
      )
  
      if len(predictions.keys()) != 1:
          raise ValueError(
              "The network has more than one component {} matching the requested prediction_type {}. ".format(
                  list(predictions.keys()), prediction_type
              )
          )
      return list(predictions.values())[0]
  
imports: import copy
  import random
  from collections import OrderedDict
  from typing import Dict, List, Union, Tuple
  import numpy
  from six.moves import range
  from rl_coach.agents.agent_interface import AgentInterface
  from rl_coach.architectures.network_wrapper import NetworkWrapper
  from rl_coach.base_parameters import AgentParameters, Device, DeviceType, DistributedTaskParameters, Frameworks
  from rl_coach.core_types import RunPhase, PredictionType, EnvironmentEpisodes, ActionType, Batch, Episode, StateType
  from rl_coach.core_types import Transition, ActionInfo, TrainingSteps, EnvironmentSteps, EnvResponse
  from rl_coach.logger import screen, Logger, EpisodeLogger
  from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplay
  from rl_coach.saver import SaverCollection
  from rl_coach.spaces import SpacesDefinition, VectorObservationSpace, GoalsSpace, AttentionActionSpace
  from rl_coach.utils import Signal, force_list
  from rl_coach.utils import dynamic_import_and_instantiate_module_from_params
  from rl_coach.memories.backend.memory_impl import get_memory_backend
  from rl_coach.core_types import TimeTypes
  from rl_coach.off_policy_evaluators.ope_manager import OpeManager
  from rl_coach.core_types import PickledReplayBuffer, CsvDataset
label_desc: Use image node_id 35 for calling the Agent obj's underlying member method code with example usage: obj.get_predictions(states, prediction_type) and returns: list