class_docstr: Policy Gradient Theorem with an approximate policy and a Q-function.
  
  This agent is almost the same with DDPG except that it uses the likelihood
  ratio gradient estimation instead of value gradients.
  
  Args:
      model (chainer.Chain): Chain that contains both a policy and a
          Q-function
      actor_optimizer (Optimizer): Optimizer setup with the policy
      critic_optimizer (Optimizer): Optimizer setup with the Q-function
      replay_buffer (ReplayBuffer): Replay buffer
      gamma (float): Discount factor
      explorer (Explorer): Explorer that specifies an exploration strategy.
      gpu (int): GPU device id. -1 for CPU.
      replay_start_size (int): if the replay buffer's size is less than
          replay_start_size, skip update
      minibatch_size (int): Minibatch size
      update_interval (int): Model update interval in step
      target_update_interval (int): Target model update interval in step
      phi (callable): Feature extractor applied to observations
      target_update_method (str): 'hard' or 'soft'.
      soft_update_tau (float): Tau of soft target update.
      n_times_update (int): Number of repetition of update
      average_q_decay (float): Decay rate of average Q, only used for
          recording statistics
      average_loss_decay (float): Decay rate of average loss, only used for
          recording statistics
      batch_accumulator (str): 'mean' or 'sum'
      logger (Logger): Logger used
      beta (float): Coefficient for entropy regularization
      act_deterministically (bool): Act deterministically by selecting most
          probable actions in test time
      batch_states (callable): method which makes a batch of observations.
          default is `chainerrl.misc.batch_states.batch_states`
code: def select_action(self, state):
      return self.explorer.select_action(
          self.t, lambda: self.act(state)
      )
  
imports: import copy
  from logging import getLogger
  import chainer
  from chainer import cuda
  import chainer.functions
  from chainerrl.agent import Agent
  from chainerrl.agent import AttributeSavingMixin
  from chainerrl.agents.ddpg import disable_train
  from chainerrl.misc.batch_states import batch_states
  from chainerrl.misc.copy_param import synchronize_parameters
  from chainerrl.recurrent import Recurrent
  from chainerrl.replay_buffer import batch_experiences
  from chainerrl.replay_buffer import ReplayUpdater
label_desc: Use image node_id 8 for calling the PGT obj's underlying member method code with example usage: obj.select_action(state) and returns: self