code: def test_scheduler_as_warmup(self):
      config = self._get_valid_decay_config()
      # Swap start and end lr to change to warmup
      tmp = config["start_value"]
      config["start_value"] = config["end_value"]
      config["end_value"] = tmp
  
      scheduler = CosineParamScheduler.from_config(config)
      schedule = [
          round(scheduler(epoch_num / self._num_epochs), 4)
          for epoch_num in range(self._num_epochs)
      ]
      # Schedule should be decay reversed
      expected_schedule = [config["start_value"]] + list(
          reversed(self._get_valid_decay_config_intermediate_values())
      )
  
      self.assertEqual(schedule, expected_schedule)
  
file_path: ClassyVision/test/optim_param_scheduler_cosine_test.py
imports: import copy
  import unittest
  from classy_vision.optim.param_scheduler import build_param_scheduler, CosineParamScheduler
label_desc: Use image node_id 5 for calling the TestCosineScheduler obj's underlying member method code with example usage: obj.test_scheduler_as_warmup() without return types