code: def _forward_inference(self, batch: NestedDict) -> Dict[str, Any]:
      output = {}
  
      # Encoder forward pass.
      encoder_outs = self.encoder(batch)
      if STATE_OUT in encoder_outs:
          output[STATE_OUT] = encoder_outs[STATE_OUT]
  
      # Pi head.
      output[SampleBatch.ACTION_DIST_INPUTS] = self.pi(
          encoder_outs[ENCODER_OUT][ACTOR]
      )
  
      return output
  
file_path: ray/rllib/algorithms/ppo/torch/ppo_torch_rl_module.py
imports: from typing import Any, Dict
  from ray.rllib.algorithms.ppo.ppo_rl_module import PPORLModule
  from ray.rllib.core.models.base import ACTOR, CRITIC, ENCODER_OUT, STATE_OUT
  from ray.rllib.core.rl_module.rl_module import RLModule
  from ray.rllib.core.rl_module.torch import TorchRLModule
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.framework import try_import_torch
  from ray.rllib.utils.nested_dict import NestedDict
label_desc: Use image node_id 1 for calling the PPOTorchRLModule obj's underlying member method code with example usage: obj._forward_inference(batch) and returns: output