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

        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.
        
art/defences/trainer/ibp_certified_trainer_pytorch.py