class_docstr: Set hyper parameters by a predefined step-based scheduler.
      
docstr: Step step_num and fetch value according to following rule:
  
  Given scheduler_list: [(step_0, value_0), (step_1, value_1), ..., (step_N, value_N)],
  function will return value_K which satisfying self.cur_step >= step_K and self.cur_step < step_K+1
  
  Args:
      step_num (int): number of steps (default: 1)
code: def step(self, step_num=1):
      """Step step_num and fetch value according to following rule:
  
      Given scheduler_list: [(step_0, value_0), (step_1, value_1), ..., (step_N, value_N)],
      function will return value_K which satisfying self.cur_step >= step_K and self.cur_step < step_K+1
  
      Args:
          step_num (int): number of steps (default: 1)
      """
      assert isinstance(step_num, int) and step_num >= 1
      self.cur_step += step_num
  
      if self.cur_index < self.scheduler_num - 1:
          if (
              self.cur_step
              >= self.scheduler_list[self.cur_index + 1][0]
          ):
              self.cur_index += 1
              self.cur_value = self.scheduler_list[self.cur_index][1]
  
      return self.cur_value
  
file_path: PARL/parl/utils/scheduler.py
imports: import six
label_desc: Use image node_id 2 for calling the PiecewiseScheduler obj's underlying member method code with example usage: obj.step(step_num) and returns: self