class_docstr: Tuner is an AutoML algorithm, which generates a new configuration for the next try.
  A new trial will run with this configuration.
  
  This is the abstract base class for all tuners.
  Tuning algorithms should inherit this class and override :meth:`update_search_space`, :meth:`receive_trial_result`,
  as well as :meth:`generate_parameters` or :meth:`generate_multiple_parameters`.
  
  After initializing, NNI will first call :meth:`update_search_space` to tell tuner the feasible region,
  and then call :meth:`generate_parameters` one or more times to request for hyper-parameter configurations.
  
  The framework will train several models with given configuration.
  When one of them is finished, the final accuracy will be reported to :meth:`receive_trial_result`.
  And then another configuration will be reqeusted and trained, util the whole experiment finish.
  
  If a tuner want's to know when a trial ends, it can also override :meth:`trial_end`.
  
  Tuners use *parameter ID* to track trials.
  In tuner context, there is a one-to-one mapping between parameter ID and trial.
  When the framework ask tuner to generate hyper-parameters for a new trial,
  an ID has already been assigned and can be recorded in :meth:`generate_parameters`.
  Later when the trial ends, the ID will be reported to :meth:`trial_end`,
  and :meth:`receive_trial_result` if it has a final result.
  Parameter IDs are unique integers.
  
  The type/format of search space and hyper-parameters are not limited,
  as long as they are JSON-serializable and in sync with trial code.
  For HPO tuners, however, there is a widely shared common interface,
  which supports ``choice``, ``randint``, ``uniform``, and so on.
  See ``docs/en_US/Tutorial/SearchSpaceSpec.md`` for details of this interface.
  
  [WIP] For advanced tuners which take advantage of trials' intermediate results,
  an ``Advisor`` interface is under development.
  
  See Also
  --------
  Builtin tuners:
  :class:`~nni.algorithms.hpo.hyperopt_tuner.hyperopt_tuner.HyperoptTuner`
  :class:`~nni.algorithms.hpo.evolution_tuner.evolution_tuner.EvolutionTuner`
  :class:`~nni.algorithms.hpo.smac_tuner.SMACTuner`
  :class:`~nni.algorithms.hpo.gridsearch_tuner.GridSearchTuner`
  :class:`~nni.algorithms.hpo.networkmorphism_tuner.networkmorphism_tuner.NetworkMorphismTuner`
  :class:`~nni.algorithms.hpo.metis_tuner.mets_tuner.MetisTuner`
  :class:`~nni.algorithms.hpo.ppo_tuner.PPOTuner`
  :class:`~nni.algorithms.hpo.gp_tuner.gp_tuner.GPTuner`
class_docstr_tok: ["Tuner","is","an","AutoML","algorithm",",","which","generates","a","new","configuration","for","the","next","try",".","A","new","trial","will","run","with","this","configuration",".","This","is","the","abstract","base","class","for","all","tuners",".","Tuning","algorithms","should","inherit","this","class","and","override",":","meth",":","`","update_search_space","`",",",":","meth",":","`","receive_trial_result","`",",","as","well","as",":","meth",":","`","generate_parameters","`","or",":","meth",":","`","generate_multiple_parameters","`",".","After","initializing",",","NNI","will","first","call",":","meth",":","`","update_search_space","`","to","tell","tuner","the","feasible","region",",","and","then","call",":","meth",":","`","generate_parameters","`","one","or","more","times","to","request","for","hyper-parameter","configurations",".","The","framework","will","train","several","models","with","given","configuration",".","When","one","of","them","is","finished",",","the","final","accuracy","will","be","reported","to",":","meth",":","`","receive_trial_result","`",".","And","then","another","configuration","will","be","reqeusted","and","trained",",","util","the","whole","experiment","finish",".","If","a","tuner","want","'s","to","know","when","a","trial","ends",",","it","can","also","override",":","meth",":","`","trial_end","`",".","Tuners","use","*","parameter","ID","*","to","track","trials",".","In","tuner","context",",","there","is","a","one-to-one","mapping","between","parameter","ID","and","trial",".","When","the","framework","ask","tuner","to","generate","hyper-parameters","for","a","new","trial",",","an","ID","has","already","been","assigned","and","can","be","recorded","in",":","meth",":","`","generate_parameters","`",".","Later","when","the","trial","ends",",","the","ID","will","be","reported","to",":","meth",":","`","trial_end","`",",","and",":","meth",":","`","receive_trial_result","`","if","it","has","a","final","result",".","Parameter","IDs","are","unique","integers",".","The","type\/format","of","search","space","and","hyper-parameters","are","not","limited",",","as","long","as","they","are","JSON-serializable","and","in","sync","with","trial","code",".","For","HPO","tuners",",","however",",","there","is","a","widely","shared","common","interface",",","which","supports","``","choice","``",",","``","randint","``",",","``","uniform","``",",","and","so","on",".","See","``","docs\/en_US\/Tutorial\/SearchSpaceSpec.md","``","for","details","of","this","interface",".","[","WIP","]","For","advanced","tuners","which","take","advantage","of","trials","'","intermediate","results",",","an","``","Advisor","``","interface","is","under","development",".","See","Also","--","--","--","--","Builtin","tuners",":",":","class",":","`","~nni.algorithms.hpo.hyperopt_tuner.hyperopt_tuner.HyperoptTuner","`",":","class",":","`","~nni.algorithms.hpo.evolution_tuner.evolution_tuner.EvolutionTuner","`",":","class",":","`","~nni.algorithms.hpo.smac_tuner.SMACTuner","`",":","class",":","`","~nni.algorithms.hpo.gridsearch_tuner.GridSearchTuner","`",":","class",":","`","~nni.algorithms.hpo.networkmorphism_tuner.networkmorphism_tuner.NetworkMorphismTuner","`",":","class",":","`","~nni.algorithms.hpo.metis_tuner.mets_tuner.MetisTuner","`",":","class",":","`","~nni.algorithms.hpo.ppo_tuner.PPOTuner","`",":","class",":","`","~nni.algorithms.hpo.gp_tuner.gp_tuner.GPTuner","`"]
code: def _on_error(self) -> None:
      pass
  
file_path: nni/nni/tuner.py
imports: from __future__ import annotations
  import logging
  import nni
  from .recoverable import Recoverable
  from .typehint import Parameters, SearchSpace, TrialMetric, TrialRecord
label_desc: Use image node_id 11 for calling the Tuner obj's underlying member method code with example usage: obj._on_error() without return types