From a46badd5c066f13bbbad1c38bf309c6346e965bf Mon Sep 17 00:00:00 2001 From: Janne Sinivirta Date: Tue, 19 Jun 2018 21:57:42 +0300 Subject: [PATCH] reuse pool workers --- freqtrade/optimize/hyperopt.py | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/freqtrade/optimize/hyperopt.py b/freqtrade/optimize/hyperopt.py index 07e618b15..e49e66137 100644 --- a/freqtrade/optimize/hyperopt.py +++ b/freqtrade/optimize/hyperopt.py @@ -308,13 +308,12 @@ class Hyperopt(Backtesting): 'result': result_explanation, } ) - return loss -# return { -# 'loss': loss, -# 'status': STATUS_OK, -# 'result': result_explanation, -# } + return { + 'loss': loss, + 'status': STATUS_OK, + 'result': result_explanation, + } def format_results(self, results: DataFrame) -> str: """ @@ -374,13 +373,14 @@ class Hyperopt(Backtesting): opt = Optimizer(self.hyperopt_space(), "ET", acq_optimizer="sampling") - for i in range(self.total_tries//cpus): - asked = opt.ask(n_points=cpus) - #asked = opt.ask() - #f_val = self.generate_optimizer(asked) - f_val = Parallel(n_jobs=-1)(delayed(self.generate_optimizer)(v) for v in asked) - opt.tell(asked, f_val) - print(f'got value {f_val}') + with Parallel(n_jobs=-1) as parallel: + for i in range(self.total_tries//cpus): + asked = opt.ask(n_points=cpus) + #asked = opt.ask() + #f_val = self.generate_optimizer(asked) + f_val = parallel(delayed(self.generate_optimizer)(v) for v in asked) + opt.tell(asked, [i['loss'] for i in f_val]) + print(f'got value {f_val}') except ValueError: