def after_training_epoch(self, strategy: "BaseSGDTemplate", **kwargs):
        """Periodic eval controlled by `self.eval_every` and
        `self.peval_mode`."""
        if self.peval_mode == "epoch":
            self._maybe_peval(strategy, strategy.clock.train_exp_epochs, **kwargs)
Periodic eval controlled by `self.eval_every` and
        `self.peval_mode`.
avalanche/training/templates/base_sgd.py