code: def cyclic_triangular(
      min_lr: float, max_lr: float, period: int
  ) -> Iterable[float]:
      it = 1
      while True:
          # https://towardsdatascience.com/adaptive-and-cyclical-learning-rates-using-pytorch-2bf904d18dee
          cycle = numpy.floor(1 + it / (2 * period))
          x = numpy.abs(it / period - 2 * cycle + 1)
          relative = max(0, 1 - x)
          yield min_lr + (max_lr - min_lr) * relative
          it += 1
  
file_path: thinc/thinc/schedules.py
imports: from typing import Iterable
  import numpy
  from .config import registry
label_desc: Use image node_id 8 for calling a global function with example usage: cyclic_triangular(min_lr, max_lr, period) without return types