class_docstr: Class representing an ensemble of multiple forecasting models.
class_docstr_tok: ["Class","representing","an","ensemble","of","multiple","forecasting","models","."]
code: def __init__(
      self,
      config: ForecasterEnsembleConfig = None,
      models: List[ForecasterBase] = None,
  ):
      super().__init__(config=config, models=models)
      for model in self.models:
          assert isinstance(
              model, ForecasterBase
          ), f"Expected all models in {type(self).__name__} to be forecasters, but got a {type(model).__name__}."
          model.config.invert_transform = True
  
imports: import logging
  import traceback
  from typing import List, Optional, Tuple, Union
  import pandas
  from merlion.evaluate.forecast import ForecastEvaluator, ForecastEvaluatorConfig
  from merlion.models.ensemble.base import EnsembleConfig, EnsembleTrainConfig, EnsembleBase
  from merlion.models.ensemble.combine import Mean
  from merlion.models.forecast.base import ForecasterBase, ForecasterExogConfig, ForecasterExogBase
  from merlion.utils.time_series import TimeSeries
label_desc: Use image node_id 3 to create a new ForecasterEnsemble object from inherited base classes: EnsembleBase, ForecasterExogBase with example: obj = ForecasterEnsemble(config, models)