code: def __call__(self, batch):
      not_terminal = 1.0 - batch.terminal.float()
      # normalize actions
      action = rescale_actions(
          batch.action,
          new_min=self.train_low,
          new_max=self.train_high,
          prev_min=self.action_low,
          prev_max=self.action_high,
      )
      # only normalize non-terminal
      non_terminal_indices = (batch.terminal == 0).squeeze(1)
      next_action = torch.zeros_like(action)
      next_action[non_terminal_indices] = rescale_actions(
          batch.next_action[non_terminal_indices],
          new_min=self.train_low,
          new_max=self.train_high,
          prev_min=self.action_low,
          prev_max=self.action_high,
      )
      dict_batch = {
          InputColumn.STATE_FEATURES: batch.state,
          InputColumn.NEXT_STATE_FEATURES: batch.next_state,
          InputColumn.ACTION: action,
          InputColumn.NEXT_ACTION: next_action,
          InputColumn.REWARD: batch.reward,
          InputColumn.NOT_TERMINAL: not_terminal,
          InputColumn.STEP: None,
          InputColumn.TIME_DIFF: None,
          InputColumn.EXTRAS: rlt.ExtraData(
              mdp_id=None,
              sequence_number=None,
              action_probability=batch.log_prob.exp(),
              max_num_actions=None,
              metrics=None,
          ),
      }
      has_candidate_features = False
      try:
          dict_batch.update(
              {
                  InputColumn.CANDIDATE_FEATURES: batch.doc,
                  InputColumn.NEXT_CANDIDATE_FEATURES: batch.next_doc,
              }
          )
          has_candidate_features = True
      except AttributeError:
          pass
      output = rlt.PolicyNetworkInput.from_dict(dict_batch)
      if has_candidate_features:
          output.state = rlt._embed_states(output.state)
          output.next_state = rlt._embed_states(output.next_state)
      return output
  
imports: import inspect
  import logging
  from typing import Dict, Optional
  import gym
  import numpy
  import reagent.core.types
  import torch
  import torch.nn.functional
  from reagent.core.parameters import CONTINUOUS_TRAINING_ACTION_RANGE
  from reagent.gym.types import Trajectory
  from reagent.preprocessing.types import InputColumn
  from reagent.training.reagent_lightning_module import ReAgentLightningModule
  from reagent.training.utils import rescale_actions
label_desc: Use image node_id 3 for calling the PolicyNetworkInputMaker obj's underlying member method code with example usage: obj.__call__(batch) and returns: output