class_docstr: Class implementing a simple linear scheduler to grow the certification radius or change the loss weightings
class_docstr_tok: ["Class","implementing","a","simple","linear","scheduler","to","grow","the","certification","radius","or","change","the","loss","weightings"]
docstr: Grow the value by self.step_per_epoch.
  
  :return: The updated scheduler value.
docstr_tok: ["Grow","the","value","by","self.step_per_epoch",".",":","return",":","The","updated","scheduler","value","."]
code: def step(self) -> float:
      """
      Grow the value by self.step_per_epoch.
  
      :return: The updated scheduler value.
      """
      self.step_count += 1
      if self.step_count > self.warmup and self.val < self.final_val:
          self.val += self.step_per_epoch
          self.val = min(self.val, self.final_val)
      return self.val
  
file_path: adversarial-robustness-toolbox/art/defences/trainer/ibp_certified_trainer_pytorch.py
imports: import logging
  import random
  import sys
  import numpy
  from sklearn.utils import shuffle
  from tqdm import tqdm
  from art.defences.trainer.trainer import Trainer
  from art.attacks.evasion.projected_gradient_descent.projected_gradient_descent import ProjectedGradientDescent
  from art.utils import check_and_transform_label_format
label_desc: Use image node_id 2 for calling the DefaultLinearScheduler obj's underlying member method code with example usage: obj.step() and returns: self