code: def slanted_triangular(max_rate, num_steps, cut_frac=0.1, ratio=32, decay=1, t=0.0):
      
      cut = int(num_steps * cut_frac)
      while True:
          t += 1
          if t < cut:
              p = t / cut
          else:
              p = 1 - ((t - cut) / (cut * (1 / cut_frac - 1)))
          learn_rate = max_rate * (1 + p * (ratio - 1)) * (1 / ratio)
          yield learn_rate
docs: Yield an infinite series of values according to Howard and Ruder's
      "slanted triangular learning rate" schedule.