def METHOD_NAME(self, epoch):
    """Called at the beginning of each epoch (epochs start at 1)."""
    if (
        (
            self.epoch_schedule is not None
            and epoch > 0
            and (epoch - 1) % self.epoch_schedule == 0
        )
        # we always step once in the beginning, even if using
        # update-based quantization
        or self.quantization_step == 0
    ):
        self.step()