Source code for hypernets.searchers.playback_searcher

# -*- coding:utf-8 -*-
"""

"""
from ..core import TrialHistory
from ..core.callbacks import EarlyStoppingError
from ..core.searcher import Searcher, OptimizeDirection


[docs]class PlaybackSearcher(Searcher): def __init__(self, history: TrialHistory, top_n=None, reverse=False, optimize_direction=OptimizeDirection.Minimize): assert history is not None assert len(history.trials) > 0 self.history = history self.top_n = top_n if top_n is not None else len(history.trials) self.samples = [t.space_sample for t in self.history.get_top(self.top_n)] self.index = 0 self.reverse = reverse if reverse: self.samples.reverse() super(PlaybackSearcher, self).__init__(None, use_meta_learner=False, optimize_direction=optimize_direction) @property def parallelizable(self): return True
[docs] def sample(self, space_options=None): if self.index >= len(self.samples): raise EarlyStoppingError('no more samples.') sample = self.samples[self.index] self.index += 1 return sample
[docs] def update_result(self, space, result): pass