don't tell the optimizer "out of bounds" scores
This commit is contained in:
parent
3f8ee76b24
commit
15749d3427
@ -117,9 +117,9 @@ class Hyperopt:
|
|||||||
self.opts: List[Optimizer] = []
|
self.opts: List[Optimizer] = []
|
||||||
self.opt: Optimizer = None
|
self.opt: Optimizer = None
|
||||||
|
|
||||||
|
backend.manager = Manager()
|
||||||
if 'multi_opt' in self.config and self.config['multi_opt']:
|
if 'multi_opt' in self.config and self.config['multi_opt']:
|
||||||
self.multi = True
|
self.multi = True
|
||||||
backend.manager = Manager()
|
|
||||||
backend.optimizers = backend.manager.Queue()
|
backend.optimizers = backend.manager.Queue()
|
||||||
backend.results_board = backend.manager.Queue(maxsize=1)
|
backend.results_board = backend.manager.Queue(maxsize=1)
|
||||||
backend.results_board.put([])
|
backend.results_board.put([])
|
||||||
@ -127,9 +127,8 @@ class Hyperopt:
|
|||||||
self.opt_acq_optimizer = 'sampling'
|
self.opt_acq_optimizer = 'sampling'
|
||||||
default_n_points = 2
|
default_n_points = 2
|
||||||
else:
|
else:
|
||||||
backend.manager = Manager()
|
|
||||||
backend.results = backend.manager.Queue()
|
|
||||||
self.multi = False
|
self.multi = False
|
||||||
|
backend.results = backend.manager.Queue()
|
||||||
self.opt_base_estimator = 'GP'
|
self.opt_base_estimator = 'GP'
|
||||||
self.opt_acq_optimizer = 'lbfgs'
|
self.opt_acq_optimizer = 'lbfgs'
|
||||||
default_n_points = 1
|
default_n_points = 1
|
||||||
@ -604,6 +603,10 @@ class Hyperopt:
|
|||||||
while not backend.results.empty():
|
while not backend.results.empty():
|
||||||
vals.append(backend.results.get())
|
vals.append(backend.results.get())
|
||||||
if vals:
|
if vals:
|
||||||
|
# values with improbable loss scores should not be told to the optimizer
|
||||||
|
# to reduce noise
|
||||||
|
vals = list(filter(lambda v: v['loss'] != MAX_LOSS, vals))
|
||||||
|
if vals: # again if all are filtered
|
||||||
self.opt.tell([list(v['params_dict'].values()) for v in vals],
|
self.opt.tell([list(v['params_dict'].values()) for v in vals],
|
||||||
[v['loss'] for v in vals],
|
[v['loss'] for v in vals],
|
||||||
fit=fit)
|
fit=fit)
|
||||||
|
Loading…
Reference in New Issue
Block a user