def after_epoch(self, epoch_id: int, epoch_data: EpochData) -> None:
        """
        Call :py:meth:`_on_plateau_action` if the ``long_term``
        variable mean is lower/greater than the ``short_term`` mean.
        """

        super().after_epoch(epoch_id=epoch_id, epoch_data=epoch_data)

        self._saved_loss.append(epoch_data[self._stream][self._variable][OnPlateau._AGGREGATION])

        long_mean = np.mean(self._saved_loss[-self._long_term:])
        short_mean = np.mean(self._saved_loss[-self._short_term:])
        if self._objective == 'min' and long_mean < short_mean:
            self._on_plateau_action(epoch_id=epoch_id, epoch_data=epoch_data)
        elif self._objective == 'max' and long_mean > short_mean:
            self._on_plateau_action(epoch_id=epoch_id, epoch_data=epoch_data)