code: def log_to_screen(self):
      # log to screen
      log = OrderedDict()
      log["Name"] = self.full_name_id
      if self.task_id is not None:
          log["Worker"] = self.task_id
      log["Episode"] = self.current_episode
      log["Total reward"] = round(
          self.total_reward_in_current_episode, 2
      )
      log["Steps"] = self.total_steps_counter
      log["Training iteration"] = self.training_iteration
      screen.log_dict(log, prefix=self.phase.value)
  
file_path: coach/rl_coach/agents/policy_optimization_agent.py
imports: from collections import OrderedDict
  from enum import Enum
  from typing import Union
  import numpy
  from rl_coach.agents.agent import Agent
  from rl_coach.core_types import Batch, ActionInfo
  from rl_coach.logger import screen
  from rl_coach.spaces import DiscreteActionSpace, BoxActionSpace
  from rl_coach.utils import eps
label_desc: Use image node_id 2 for calling the PolicyOptimizationAgent obj's underlying member method code with example usage: obj.log_to_screen() without return types