def _score_core(
        self, series: Sequence[TimeSeries], *args, **kwargs
    ) -> Sequence[TimeSeries]:
        """Apply the scorer (sub) model scoring method on the series components"""
        _ = _check_input(series, "series", width_expected=self.width_trained_on)
        if self.is_univariate or series[0].width == 1:
            # n series * (time, components, samples) -> (n series * (time - (window - 1)),)
            score_vals = self._model_score_method(
                model=self.model,
                data=self._tabularize_series(series, component_wise=False),
            )
            # (n series * (time - (window - 1)),) -> (components=1, n series * (time - (window - 1)))
            score_vals = np.expand_dims(score_vals, 0)
        else:
            # parallelize scoring of components by the corresponding sub-model
            score_iterator = zip(
                self.model,
                self._tabularize_series(series, component_wise=True),
            )
            input_iterator = _build_tqdm_iterator(
                score_iterator, verbose=False, desc=None, total=len(self.model)
            )
            # n series * (time, components, samples) -> (components, n series * (time - (window - 1)))
            score_vals = np.array(
                _parallel_apply(
                    input_iterator,
                    self._model_score_method,
                    n_jobs=self._n_jobs,
                    fn_args=args,
                    fn_kwargs=kwargs,
                )
            )
        # (components, n series * (time - (window - 1))) -> n series * (time - (window - 1), components)
        score_series = self._convert_tabular_to_series(series, score_vals)
        if self.window > 1 and self.window_agg:
            return self._fun_window_agg(score_series, self.window)
        else:
            return score_series
Apply the scorer (sub) model scoring method on the series components
darts/ad/scorers/scorers.py