class_docstr: Mixin for TFPolicy that adds a learning rate schedule.
code: def __init__(self, lr, lr_schedule):
      self._lr_schedule = None
      # Disable any scheduling behavior related to learning if Learner API is active.
      # Schedules are handled by Learner class.
      if lr_schedule is None or self.config.get(
          "_enable_new_api_stack", False
      ):
          self.cur_lr = tf1.get_variable(
              "lr", initializer=lr, trainable=False
          )
      else:
          self._lr_schedule = PiecewiseSchedule(
              lr_schedule,
              outside_value=lr_schedule[-1][-1],
              framework=None,
          )
          self.cur_lr = tf1.get_variable(
              "lr",
              initializer=self._lr_schedule.value(0),
              trainable=False,
          )
          if self.framework == "tf":
              self._lr_placeholder = tf1.placeholder(
                  dtype=tf.float32, name="lr"
              )
              self._lr_update = self.cur_lr.assign(
                  self._lr_placeholder, 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 1 to create a new LearningRateSchedule object  with example: obj = LearningRateSchedule(lr, lr_schedule)