class_docstr: Collects samples for all policies and agents from a multi-agent env.
  
  This API is controlled by RolloutWorker objects to store all data
  generated by Environments and Policies/Models during rollout and
  postprocessing. It's purposes are to a) make data collection and
  SampleBatch/input_dict generation from this data faster, b) to unify
  the way we collect samples from environments and model (outputs), thereby
  allowing for possible user customizations, c) to allow for more complex
  inputs fed into different policies (e.g. multi-agent case with inter-agent
  communication channel).
class_docstr_tok: ["Collects","samples","for","all","policies","and","agents","from","a","multi-agent","env",".","This","API","is","controlled","by","RolloutWorker","objects","to","store","all","data","generated","by","Environments","and","Policies\/Models","during","rollout","and","postprocessing",".","It","'s","purposes","are","to","a",")","make","data","collection","and","SampleBatch\/input_dict","generation","from","this","data","faster",",","b",")","to","unify","the","way","we","collect","samples","from","environments","and","model","(","outputs",")",",","thereby","allowing","for","possible","user","customizations",",","c",")","to","allow","for","more","complex","inputs","fed","into","different","policies","(","e.g",".","multi-agent","case","with","inter-agent","communication","channel",")","."]
docstr: Returns an input_dict for an (inference) forward pass from our data.
  
  The input_dict can then be used for action computations inside a
  Policy via `Policy.compute_actions_from_input_dict()`.
  
  Args:
      policy_id: The Policy ID to get the input dict for.
  
  Returns:
      Dict[str, TensorType]: The input_dict to be passed into the ModelV2
          for inference/training.
  
  .. testcode::
      :skipif: True
  
      obs, r, terminated, truncated, info = env.step(action)
      collector.add_action_reward_next_obs(12345, 0, "pol0", False, {
          "action": action, "obs": obs, "reward": r,
          "terminated": terminated, "truncated", truncated
      })
      input_dict = collector.get_inference_input_dict(policy.model)
      action = policy.compute_actions_from_input_dict(input_dict)
      # repeat
docstr_tok: ["Returns","an","input_dict","for","an","(","inference",")","forward","pass","from","our","data",".","The","input_dict","can","then","be","used","for","action","computations","inside","a","Policy","via","`","Policy.compute_actions_from_input_dict","(",")","`",".","Args",":","policy_id",":","The","Policy","ID","to","get","the","input","dict","for",".","Returns",":","Dict","[","str",",","TensorType","]",":","The","input_dict","to","be","passed","into","the","ModelV2","for","inference\/training",".","..","testcode",":",":",":","skipif",":","True","obs",",","r",",","terminated",",","truncated",",","info","=","env.step","(","action",")","collector.add_action_reward_next_obs","(","12345",",","0",",","``","pol0","''",",","False",",","{","``","action","''",":","action",",","``","obs","''",":","obs",",","``","reward","''",":","r",",","``","terminated","''",":","terminated",",","``","truncated","''",",","truncated","}",")","input_dict","=","collector.get_inference_input_dict","(","policy.model",")","action","=","policy.compute_actions_from_input_dict","(","input_dict",")","#","repeat"]
code: def get_inference_input_dict(
      self, policy_id: PolicyID
  ) -> Dict[str, TensorType]:
      """Returns an input_dict for an (inference) forward pass from our data.
  
      The input_dict can then be used for action computations inside a
      Policy via `Policy.compute_actions_from_input_dict()`.
  
      Args:
          policy_id: The Policy ID to get the input dict for.
  
      Returns:
          Dict[str, TensorType]: The input_dict to be passed into the ModelV2
              for inference/training.
  
      .. testcode::
          :skipif: True
  
          obs, r, terminated, truncated, info = env.step(action)
          collector.add_action_reward_next_obs(12345, 0, "pol0", False, {
              "action": action, "obs": obs, "reward": r,
              "terminated": terminated, "truncated", truncated
          })
          input_dict = collector.get_inference_input_dict(policy.model)
          action = policy.compute_actions_from_input_dict(input_dict)
          # repeat
      """
      raise NotImplementedError
  
file_path: ray/rllib/evaluation/collectors/sample_collector.py
imports: import logging
  from abc import ABCMeta, abstractmethod
  from typing import TYPE_CHECKING, Dict, List, Optional, Union
  from ray.rllib.evaluation.episode import Episode
  from ray.rllib.policy.policy_map import PolicyMap
  from ray.rllib.policy.sample_batch import MultiAgentBatch, SampleBatch
  from ray.rllib.utils.annotations import PublicAPI
  from ray.rllib.utils.typing import AgentID, EnvID, EpisodeID, PolicyID, TensorType
label_desc: Use image node_id 7 for calling the SampleCollector obj's underlying member method code with example usage: obj.get_inference_input_dict(policy_id) without return types