def initialise_default_scheduler(initial_val: float, final_val: float, epochs: int) -> DefaultLinearScheduler:
        """
        Create linear schedulers based on default example values.

        :param initial_val: Initial value to begin the scheduler from.
        :param final_val: Final value to end the scheduler at.
        :param epochs: Total number of epochs.

        :return: A linear scheduler initialised with default example values.
        """
        warm_up = int(0.01 * epochs)
        epochs_to_ramp = int(0.30 * epochs)  # increasing eps from 0 to eps over 30% of the total epochs
        if epochs_to_ramp == 0:
            epochs_to_ramp = 1

        step_in_eps_per_epoch = (final_val - initial_val) / epochs_to_ramp

        return DefaultLinearScheduler(
            step_per_epoch=step_in_eps_per_epoch,
            initial_val=initial_val,
            final_val=final_val,
            warmup=warm_up,
        )

        Create linear schedulers based on default example values.

        :param initial_val: Initial value to begin the scheduler from.
        :param final_val: Final value to end the scheduler at.
        :param epochs: Total number of epochs.

        :return: A linear scheduler initialised with default example values.
        
art/defences/trainer/ibp_certified_trainer_pytorch.py