code: def _forward_train(self, batch: NestedDict):
      outs = super()._forward_train(batch)
      old_pi_inputs_encoded = self.old_encoder(batch)[ENCODER_OUT][
          ACTOR
      ]
      old_action_dist_logits = self.old_pi(old_pi_inputs_encoded)
      outs[OLD_ACTION_DIST_LOGITS_KEY] = old_action_dist_logits
      return outs
  
file_path: ray/python/ray/rllib/algorithms/appo/torch/appo_torch_rl_module.py
imports: from typing import List
  from ray.rllib.algorithms.appo.appo import OLD_ACTION_DIST_LOGITS_KEY
  from ray.rllib.algorithms.ppo.torch.ppo_torch_rl_module import PPOTorchRLModule
  from ray.rllib.core.models.base import ACTOR
  from ray.rllib.core.models.tf.encoder import ENCODER_OUT
  from ray.rllib.core.rl_module.rl_module_with_target_networks_interface import RLModuleWithTargetNetworksInterface
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.utils.annotations import override
  from ray.rllib.utils.nested_dict import NestedDict
label_desc: Use image node_id 4 for calling the APPOTorchRLModule obj's underlying member method code with example usage: obj._forward_train(batch) and returns: outs