def evaluate_loader(
        self,
        loader: DataLoader,
        callbacks: "Union[List[Callback], OrderedDict[str, Callback]]" = None,
        model: Optional[TorchModel] = None,
        engine: Union["Engine", str] = None,
        seed: int = 42,
        verbose: bool = False,
    ) -> Dict[str, Any]:
        """
        Evaluates dataloader with given model and returns obtained metrics.

        Args:
            loader: loader to predict
            callbacks: list or dictionary with catalyst callbacks
            model: model, compatible with current runner.
                If `None` simply takes current model from runner.
            engine: engine to use for model evaluation
            seed: random seed to use before prediction
            verbose: if `True`, it displays the status of the evaluation to the console.

        Returns:
            Dict with metrics counted on the loader.

        Raises:
            IRunnerError: if ``CheckpointCallback`` found in the callbacks
        """
        callbacks = sort_callbacks_by_order(callbacks)
        for callback in callbacks.values():
            if callback_isinstance(callback, ICheckpointCallback):
                raise IRunnerError(
                    "CheckpointCallback isn`t allowed for evaluation loader method"
                )

        if engine is None:
            engine = self.engine
        if model is None:
            model = self.model
        assert model is not None

        self.train(
            model=model,
            engine=engine,
            loaders=OrderedDict([("valid", loader)]),
            num_epochs=1,
            verbose=verbose,
            callbacks=callbacks,
            valid_loader="valid",
            seed=seed,
        )

        return self.loader_metrics

        Evaluates dataloader with given model and returns obtained metrics.

        Args:
            loader: loader to predict
            callbacks: list or dictionary with catalyst callbacks
            model: model, compatible with current runner.
                If `None` simply takes current model from runner.
            engine: engine to use for model evaluation
            seed: random seed to use before prediction
            verbose: if `True`, it displays the status of the evaluation to the console.

        Returns:
            Dict with metrics counted on the loader.

        Raises:
            IRunnerError: if ``CheckpointCallback`` found in the callbacks
        
catalyst/runners/runner.py