def __init__(self, scenario="split", run_id=0):
        """Init.

        :param scenario: If 'split', use a class-incremental scenario with 5
            experiences (2 classes each). If 'joint', use a single experience
            with all the classes. This should be used only as a baseline since
            it is not a continual scenario.
        :param run_id: an integer in [0, 4]. Each run uses a different set of
            expert models and data splits.
        """

        assert scenario in {
            "split",
            "joint",
        }, "`scenario` argument must be one of {'split', 'joint'}."

        CURR_SEED = SEED_BENCHMARK_RUNS[run_id]

        if scenario == "split":
            benchmark = SplitCIFAR10(
                n_experiences=5, return_task_id=False, seed=CURR_SEED
            )
        elif scenario == "joint":
            benchmark = SplitCIFAR10(
                n_experiences=1, return_task_id=False, seed=CURR_SEED
            )
        else:
            assert False, "Should never get here."

        ll = len(benchmark.train_stream)
        base_model = SlimResNet18(10)
        experts = _load_expert_models(f"{scenario}_cifar10", base_model, run_id, ll)
        super().__init__(benchmark, experts)
Init.

        :param scenario: If 'split', use a class-incremental scenario with 5
            experiences (2 classes each). If 'joint', use a single experience
            with all the classes. This should be used only as a baseline since
            it is not a continual scenario.
        :param run_id: an integer in [0, 4]. Each run uses a different set of
            expert models and data splits.
        
avalanche/benchmarks/classic/ex_model.py