class_docstr: Assigns the `update_kl()` and other KL-related methods to a TFPolicy.
  
  This is used in Algorithms to update the KL coefficient after each
  learning step based on `config.kl_target` and the measured KL value
  (from the train_batch).
code: def _set_kl_coeff(self, new_kl_coeff):
      # Set the (off graph) value.
      self.kl_coeff_val = new_kl_coeff
  
      # Update the tf/tf2 Variable (via session call for tf or `assign`).
      if self.framework == "tf":
          self.get_session().run(
              self._kl_coeff_update,
              feed_dict={self._kl_coeff_placeholder: self.kl_coeff_val},
          )
      else:
          self.kl_coeff.assign(self.kl_coeff_val, read_value=False)
  
imports: import logging
  from typing import Dict, List
  import numpy
  from ray.rllib.models.modelv2 import ModelV2
  from ray.rllib.policy.eager_tf_policy import EagerTFPolicy
  from ray.rllib.policy.eager_tf_policy_v2 import EagerTFPolicyV2
  from ray.rllib.policy.policy import Policy, PolicyState
  from ray.rllib.policy.sample_batch import SampleBatch
  from ray.rllib.policy.tf_policy import TFPolicy
  from ray.rllib.utils.annotations import DeveloperAPI, override
  from ray.rllib.utils.framework import get_variable, try_import_tf
  from ray.rllib.utils.schedules import PiecewiseSchedule
  from ray.rllib.utils.tf_utils import make_tf_callable
  from ray.rllib.utils.typing import AlgorithmConfigDict, LocalOptimizer, ModelGradients, TensorType
label_desc: Use image node_id 3 for calling the KLCoeffMixin obj's underlying member method code with example usage: obj._set_kl_coeff(new_kl_coeff) without return types