class_docstr: PyTorch specific Policy class to use with RLlib.
class_docstr_tok: ["PyTorch","specific","Policy","class","to","use","with","RLlib","."]
docstr: Returns dict of extra info to include in experience batch.
  
  Args:
      input_dict: Dict of model input tensors.
      state_batches: List of state tensors.
      model: Reference to the model object.
      action_dist: Torch action dist object
          to get log-probs (e.g. for already sampled actions).
  
  Returns:
      Extra outputs to return in a `compute_actions_from_input_dict()`
      call (3rd return value).
docstr_tok: ["Returns","dict","of","extra","info","to","include","in","experience","batch",".","Args",":","input_dict",":","Dict","of","model","input","tensors",".","state_batches",":","List","of","state","tensors",".","model",":","Reference","to","the","model","object",".","action_dist",":","Torch","action","dist","object","to","get","log-probs","(","e.g",".","for","already","sampled","actions",")",".","Returns",":","Extra","outputs","to","return","in","a","`","compute_actions_from_input_dict","(",")","`","call","(","3rd","return","value",")","."]
code: def extra_action_out(
      self,
      input_dict: Dict[str, TensorType],
      state_batches: List[TensorType],
      model: TorchModelV2,
      action_dist: TorchDistributionWrapper,
  ) -> Dict[str, TensorType]:
      """Returns dict of extra info to include in experience batch.
  
      Args:
          input_dict: Dict of model input tensors.
          state_batches: List of state tensors.
          model: Reference to the model object.
          action_dist: Torch action dist object
              to get log-probs (e.g. for already sampled actions).
  
      Returns:
          Extra outputs to return in a `compute_actions_from_input_dict()`
          call (3rd return value).
      """
      return {}
  
imports: import copy
  import functools
  import logging
  import math
  import os
  import threading
  import time
  from typing import TYPE_CHECKING, Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union
  import gymnasium
  import numpy
  import tree
  import ray
  from ray.rllib.models.catalog import ModelCatalog
  from ray.rllib.models.modelv2 import ModelV2
  from ray.rllib.models.torch.torch_action_dist import TorchDistributionWrapper
  from ray.rllib.models.torch.torch_modelv2 import TorchModelV2
  from ray.rllib.policy.policy import Policy, PolicyState
  from ray.rllib.policy.rnn_sequencing import pad_batch_to_sequences_of_same_size
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.utils import NullContextManager, force_list
  from ray.rllib.utils.annotations import DeveloperAPI, override
  from ray.rllib.utils.error import ERR_MSG_TORCH_POLICY_CANNOT_SAVE_MODEL
  from ray.rllib.utils.framework import try_import_torch
  from ray.rllib.utils.metrics import DIFF_NUM_GRAD_UPDATES_VS_SAMPLER_POLICY, NUM_AGENT_STEPS_TRAINED, NUM_GRAD_UPDATES_LIFETIME
  from ray.rllib.utils.metrics.learner_info import LEARNER_STATS_KEY
  from ray.rllib.utils.numpy import convert_to_numpy
  from ray.rllib.utils.spaces.space_utils import normalize_action
  from ray.rllib.utils.threading import with_lock
  from ray.rllib.utils.torch_utils import convert_to_torch_tensor
  from ray.rllib.utils.typing import AlgorithmConfigDict, GradInfoDict, ModelGradients, ModelWeights, TensorStructType, TensorType
label_desc: Use image node_id 21 for calling the TorchPolicy obj's underlying member method code with example usage: obj.extra_action_out(input_dict, state_batches, model, action_dist) and returns: dict