class_docstr: PPO for policy learning.
code: def __init__(
      self,
      frame_stack_size,
      base_event_dir,
      agent_model_dir,
      total_num_epochs,
      **kwargs,
  ):
      super(PPOLearner, self).__init__(
          frame_stack_size,
          base_event_dir,
          agent_model_dir,
          total_num_epochs,
      )
      self._num_completed_iterations = 0
      self._lr_decay_start = None
      self._distributional_size = kwargs.get("distributional_size", 1)
      self._distributional_subscale = kwargs.get(
          "distributional_subscale", 0.04
      )
      self._distributional_threshold = kwargs.get(
          "distributional_threshold", 0.0
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import math
  import os
  from tensor2tensor.layers import common_layers
  from tensor2tensor.models.research.rl import get_policy
  from tensor2tensor.rl import ppo
  from tensor2tensor.rl.envs.tf_atari_wrappers import StackWrapper
  from tensor2tensor.rl.envs.tf_atari_wrappers import WrapperBase
  from tensor2tensor.rl.policy_learner import PolicyLearner
  from tensor2tensor.rl.restarter import Restarter
  from tensor2tensor.utils import trainer_lib
  import tensorflow.compat.v1
  import tensorflow_probability
label_desc: Use image node_id 1 to create a new PPOLearner object from inherited base classes: PolicyLearner with example: obj = PPOLearner(frame_stack_size, base_event_dir, agent_model_dir, total_num_epochs)