class_docstr: A controller where the user specifies the sequences of phase to execute.
class_docstr_tok: ["A","controller","where","the","user","specifies","the","sequences","of","phase","to","execute","."]
code: def get_best_models(
      self, num_models: int
  ) -> Sequence[tf.keras.Model]:
      final_phase = self._phases[-1]
      if isinstance(final_phase, ModelProvider):
          return self._phases[-1].get_best_models(num_models)
      raise RuntimeError("Final phase does not provide models.")
  
file_path: adanet/adanet/experimental/controllers/sequential_controller.py
imports: from typing import Iterator, Sequence
  from adanet.experimental.controllers.controller import Controller
  from adanet.experimental.phases.phase import ModelProvider
  from adanet.experimental.phases.phase import Phase
  from adanet.experimental.work_units.work_unit import WorkUnit
  import tensorflow.compat.v2
label_desc: Use image node_id 3 for calling the SequentialController obj's underlying member method code with example usage: obj.get_best_models(num_models) and returns: self