class_docstr: A phase that automatically ensembles models from a prior phase.
docstr: Initializes an AutoEnsemblePhase.
  
  Args:
    ensemblers: A list of `Ensembler` instances to determine how to combine
      subnetworks.
    ensemble_strategies: A list of `EnsembleStrategy` instances to determine
      which subnetworks compose an ensemble.
    storage: A `Storage` instance to store models and model metadata.
    num_candidates: The number of subnetwork candidates to consider from the
      previous phase. If `None` then all of the subnetworks generated in the
      previous phase will be considered.
docstr_tok: ["Initializes","an","AutoEnsemblePhase",".","Args",":","ensemblers",":","A","list","of","`","Ensembler","`","instances","to","determine","how","to","combine","subnetworks",".","ensemble_strategies",":","A","list","of","`","EnsembleStrategy","`","instances","to","determine","which","subnetworks","compose","an","ensemble",".","storage",":","A","`","Storage","`","instance","to","store","models","and","model","metadata",".","num_candidates",":","The","number","of","subnetwork","candidates","to","consider","from","the","previous","phase",".","If","`","None","`","then","all","of","the","subnetworks","generated","in","the","previous","phase","will","be","considered","."]
code: def __init__(
      self,
      ensemblers: List[Ensembler],
      ensemble_strategies: List[EnsembleStrategy],
      storage: Storage = InMemoryStorage(),
      num_candidates: int = None,
  ):
      """Initializes an AutoEnsemblePhase.
  
      Args:
        ensemblers: A list of `Ensembler` instances to determine how to combine
          subnetworks.
        ensemble_strategies: A list of `EnsembleStrategy` instances to determine
          which subnetworks compose an ensemble.
        storage: A `Storage` instance to store models and model metadata.
        num_candidates: The number of subnetwork candidates to consider from the
          previous phase. If `None` then all of the subnetworks generated in the
          previous phase will be considered.
      """
  
      super().__init__(storage)
      self._ensemblers = ensemblers
      self._ensemble_strategies = ensemble_strategies
      self._num_candidates = num_candidates
  
imports: import abc
  import random
  from typing import Iterable, Iterator, List
  from adanet.experimental.keras.ensemble_model import EnsembleModel
  from adanet.experimental.keras.ensemble_model import MeanEnsemble
  from adanet.experimental.phases.phase import DatasetProvider
  from adanet.experimental.phases.phase import ModelProvider
  from adanet.experimental.storages.in_memory_storage import InMemoryStorage
  from adanet.experimental.storages.storage import Storage
  from adanet.experimental.work_units.keras_trainer_work_unit import KerasTrainerWorkUnit
  from adanet.experimental.work_units.work_unit import WorkUnit
  import tensorflow.compat.v2
label_desc: Use image node_id 1 to create a new AutoEnsemblePhase object from inherited base classes: DatasetProvider, ModelProvider with example: obj = AutoEnsemblePhase(ensemblers, ensemble_strategies, storage, num_candidates)