From 397850cd8c6046931f9469f96d04f558389ddc12 Mon Sep 17 00:00:00 2001 From: Alex Rose Date: Thu, 27 Aug 2020 18:07:28 +0200 Subject: [PATCH] add previous runs to *.json when warm starting with result_logger --- hpbandster/core/base_iteration.py | 10 ++++++++-- hpbandster/core/master.py | 6 +++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/hpbandster/core/base_iteration.py b/hpbandster/core/base_iteration.py index a034cef..cb288fa 100644 --- a/hpbandster/core/base_iteration.py +++ b/hpbandster/core/base_iteration.py @@ -254,7 +254,7 @@ class WarmStartIteration(BaseIteration): iteration that imports a privious Result for warm starting """ - def __init__(self, Result, config_generator): + def __init__(self, Result, config_generator, result_logger=None): self.is_finished=False self.stage = 0 @@ -263,11 +263,14 @@ def __init__(self, Result, config_generator): id2conf = Result.get_id2config_mapping() delta_t = - max(map(lambda r: r.time_stamps['finished'], Result.get_all_runs())) - super().__init__(-1, [len(id2conf)] , [None], None) + super().__init__(-1, [len(id2conf)], [None], + None, + result_logger=result_logger) for i, id in enumerate(id2conf): new_id = self.add_configuration(config=id2conf[id]['config'], config_info=id2conf[id]['config_info']) + # if result_logger exists, add this config to configs.json for r in Result.get_runs_by_id(id): @@ -281,6 +284,9 @@ def __init__(self, Result, config_generator): j.timestamps[k] = v + delta_t self.register_result(j , skip_sanity_checks=True) + + if self.result_logger: + self.result_logger(j) # add prev jobs to results.json config_generator.new_result(j, update_model=(i==len(id2conf)-1)) diff --git a/hpbandster/core/master.py b/hpbandster/core/master.py index e9703b1..ce4975f 100644 --- a/hpbandster/core/master.py +++ b/hpbandster/core/master.py @@ -111,7 +111,11 @@ def __init__(self, self.warmstart_iteration = [] else: - self.warmstart_iteration = [WarmStartIteration(previous_result, self.config_generator)] + self.warmstart_iteration = [ + WarmStartIteration(previous_result, + self.config_generator, + result_logger=self.result_logger) + ] # condition to synchronize the job_callback and the queue self.thread_cond = threading.Condition()