code: def warmup_linear(
      initial_rate: float, warmup_steps: int, total_steps: int
  ) -> Iterable[float]:
      """Generate a series, starting from an initial rate, and then with a warmup
      period, and then a linear decline. Used for learning rates.
      """
      step = 0
      while True:
          if step < warmup_steps:
              factor = step / max(1, warmup_steps)
          else:
              factor = max(
                  0.0,
                  (total_steps - step)
                  / max(1.0, total_steps - warmup_steps),
              )
          yield factor * initial_rate
          step += 1
  
file_path: thinc/thinc/schedules.py
imports: from typing import Iterable
  import numpy
  from .config import registry
label_desc: Use image node_id 7 for calling a global function with example usage: warmup_linear(initial_rate, warmup_steps, total_steps) without return types