def step(self, epoch, val_loss=None):
        """Update the learning rate at the end of the given epoch."""
        super().step(epoch, val_loss)
        # we don't change the learning rate at epoch boundaries
        return self.optimizer.get_lr()
Update the learning rate at the end of the given epoch.
understand_icl/fairseq/fairseq/optim/lr_scheduler/step_lr_scheduler.py