class_docstr: A LearningRateSchedule that uses cyclical schedule.
class_docstr_tok: ["A","LearningRateSchedule","that","uses","cyclical","schedule","."]
code: def __call__(self, step):
      with tf.name_scope(self.name or "CyclicalLearningRate"):
          initial_learning_rate = tf.convert_to_tensor(
              self.initial_learning_rate, name="initial_learning_rate"
          )
          dtype = initial_learning_rate.dtype
          maximal_learning_rate = tf.cast(
              self.maximal_learning_rate, dtype
          )
          step_size = tf.cast(self.step_size, dtype)
          step_as_dtype = tf.cast(step, dtype)
          cycle = tf.floor(1 + step_as_dtype / (2 * step_size))
          x = tf.abs(step_as_dtype / step_size - 2 * cycle + 1)
  
          mode_step = cycle if self.scale_mode == "cycle" else step
  
          return initial_learning_rate + (
              maximal_learning_rate - initial_learning_rate
          ) * tf.maximum(tf.cast(0, dtype), (1 - x)) * self.scale_fn(
              mode_step
          )
  
imports: import tensorflow
  from tensorflow_addons.utils.types import FloatTensorLike
  from typeguard import typechecked
  from typing import Union, Callable
label_desc: Use image node_id 2 for calling the CyclicalLearningRate obj's underlying member method code with example usage: obj.__call__(step) and returns: unknown