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: Create a .DefaultLinearScheduler instance.
  
  :param step_per_epoch: How much to increase the certification radius every epoch.
  :param initial_val: The initial value.
  :param warmup: If to have an initial warmup period.
docstr_tok: ["Create","a",".DefaultLinearScheduler","instance",".",":","param","step_per_epoch",":","How","much","to","increase","the","certification","radius","every","epoch",".",":","param","initial_val",":","The","initial","value",".",":","param","warmup",":","If","to","have","an","initial","warmup","period","."]
code: def __init__(
      self,
      step_per_epoch: float,
      initial_val: float = 0.0,
      final_val: float = 1.0,
      warmup: int = 0,
  ) -> None:
      """
      Create a .DefaultLinearScheduler instance.
  
      :param step_per_epoch: How much to increase the certification radius every epoch.
      :param initial_val: The initial value.
      :param warmup: If to have an initial warmup period.
      """
      self.step_per_epoch = step_per_epoch
      self.val = initial_val
      self.warmup = warmup
      self.final_val = final_val
      self.step_count = 0
  
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 1 to create a new DefaultLinearScheduler object  with example: obj = DefaultLinearScheduler(step_per_epoch, initial_val, final_val, warmup)