class_docstr: A wrapper for the encoder and policy networks of a PPORLModule.
  
  Args:
      encoder_network: The encoder network of the PPORLModule.
      policy_network: The policy network of the PPORLModule.
      distribution_cls: The distribution class to construct with the logits outputed
          by the policy network.
class_docstr_tok: ["A","wrapper","for","the","encoder","and","policy","networks","of","a","PPORLModule",".","Args",":","encoder_network",":","The","encoder","network","of","the","PPORLModule",".","policy_network",":","The","policy","network","of","the","PPORLModule",".","distribution_cls",":","The","distribution","class","to","construct","with","the","logits","outputed","by","the","policy","network","."]
docstr: Return an action distribution output by the policy network.
  
  batch: A dict containing the key "obs" mapping to a torch tensor of
      observations.
docstr_tok: ["Return","an","action","distribution","output","by","the","policy","network",".","batch",":","A","dict","containing","the","key","``","obs","''","mapping","to","a","torch","tensor","of","observations","."]
code: def forward(
      self, batch: Mapping[str, torch.Tensor]
  ) -> torch.distributions.Distribution:
      """Return an action distribution output by the policy network.
  
      batch: A dict containing the key "obs" mapping to a torch tensor of
          observations.
  
      """
      # The encoder network has outputs for the actor and critic heads of the
      # PPORLModule. We only want the outputs for the actor head.
      encoder_out = self.encoder_network(batch)[ENCODER_OUT][ACTOR]
      action_logits = self.policy_network(encoder_out)
      distribution = self.distribution_cls(logits=action_logits)
      return distribution
  
file_path: ray/python/ray/rllib/examples/learner/train_w_bc_finetune_w_ppo.py
imports: import gymnasium
  import shutil
  import tempfile
  import torch
  from typing import Mapping
  import ray
  from ray import tune
  from ray.train import RunConfig, FailureConfig
  from ray.rllib.algorithms.ppo import PPOConfig
  from ray.rllib.algorithms.ppo.torch.ppo_torch_rl_module import PPOTorchRLModule
  from ray.rllib.algorithms.ppo.ppo_catalog import PPOCatalog
  from ray.rllib.core.models.base import ACTOR, ENCODER_OUT
  from ray.rllib.core.rl_module.rl_module import SingleAgentRLModuleSpec
label_desc: Use image node_id 2 for calling the BCActor obj's underlying member method code with example usage: obj.forward(batch) and returns: distribution