class_docstr: The A2C algorithm.
  
  Trains policy and value models using the A2C algortithm.
class_docstr_tok: ["The","A2C","algorithm",".","Trains","policy","and","value","models","using","the","A2C","algortithm","."]
docstr: Approximate KL divergence.
docstr_tok: ["Approximate","KL","divergence","."]
code: def approximate_kl_divergence(self):
      """Approximate KL divergence."""
  
      def f(
          dist_inputs,
          values,
          returns,
          dones,
          rewards,
          actions,
          old_log_probs,
      ):
          del values, returns, dones, rewards
          return rl_layers.ApproximateKLDivergence(
              dist_inputs,
              actions,
              old_log_probs,
              log_prob_fun=self._policy_dist.log_prob,
          )
  
      return tl.Fn("ApproximateKLDivergence", f)
  
imports: import functools
  from trax import data
  from trax import layers
  from trax import supervised
  from trax.fastmath import numpy
  from trax.fastmath import stop_gradient
  from trax.rl import actor_critic
  from trax.rl import distributions
  from trax.rl import rl_layers
  from trax.rl import training
  from trax.supervised import lr_schedules
label_desc: Use image node_id 5 for calling the A2CJoint obj's underlying member method code with example usage: obj.approximate_kl_divergence() and returns: tl, rl_layers