def on_batch_end(self, runner: "IRunner"):
        """Batch end hook. Make scheduler step and stops iterating if needed.

        Args:
            runner: current runner

        Raises:
            KeyboardInterrupt: at the end of LRFinder
        """
        super().on_batch_end(runner=runner)
        if self.iteration > self.num_steps:
            # runner.need_early_stop = True
            raise KeyboardInterrupt("End of LRFinder")
Batch end hook. Make scheduler step and stops iterating if needed.

        Args:
            runner: current runner

        Raises:
            KeyboardInterrupt: at the end of LRFinder
        
catalyst/callbacks/scheduler.py