code: def get_lrs(optim, sched, epochs, steps=1, accs=None):
      lr = current_lr(optim)
      if not isinstance(lr, float):
          lr = lr.numpy()[0]
      lrs = [lr]
      for e in range(epochs):
          for _ in range(steps):
              optim.step()
          sched.step() if accs is None else sched.step(accs[e])
          lr = current_lr(optim)
          if not isinstance(lr, float):
              lr = lr.numpy()[0]
          lrs.append(lr)
      return lrs
  
imports: import numpy
  import torch
  import unittest
  from tinygrad.tensor import Tensor
  from tinygrad.nn.state import get_parameters
  from tinygrad.nn.optim import Adam
  from extra.lr_scheduler import MultiStepLR, ReduceLROnPlateau, CosineAnnealingLR, OneCycleLR
  from extra.training import train, evaluate
  from extra.datasets import fetch_mnist
label_desc: Use image node_id 3 for calling a global function with example usage: get_lrs(optim, sched, epochs, steps, accs) and returns: lrs