fixes, moved points setup to its function

This commit is contained in:
orehunt 2020-03-10 09:10:10 +01:00
parent 29e9faf167
commit ece0ddba38

View File

@ -15,7 +15,7 @@ from numpy import iinfo, int32
from operator import itemgetter
from pathlib import Path
from pprint import pprint
from typing import Any, Dict, List, Optional
from typing import Any, Dict, List, Optional, Tuple, Set
import rapidjson
from colorama import Fore, Style
@ -616,7 +616,7 @@ class Hyperopt:
"""
vals = []
to_ask: deque = deque()
evald: set(Tuple) = set()
evald: Set[Tuple] = set()
fit = False
opt = self.opt
for r in range(tries):
@ -625,9 +625,9 @@ class Hyperopt:
if vals:
# filter losses
void_filtered = self.filter_void_losses(vals, opt)
if vals: # again if all are filtered
if void_filtered: # again if all are filtered
opt.tell([list(v['params_dict'].values()) for v in void_filtered],
[v['loss'] for v in vals],
[v['loss'] for v in void_filtered],
fit=fit)
if fit:
fit = False
@ -857,6 +857,23 @@ class Hyperopt:
self.opt.void_loss = VOID_LOSS
del opts[:]
def setup_points(self):
self.n_initial_points, self.min_epochs, self.search_space_size = self.calc_epochs(
self.dimensions, self.n_jobs, self.effort, self.total_epochs, self.n_points
)
logger.info(f"Min epochs set to: {self.min_epochs}")
# reduce random points by n_points in multi mode because asks are per job
if self.multi:
self.opt_n_initial_points = self.n_initial_points // self.n_points
else:
self.opt_n_initial_points = self.n_initial_points
logger.info(f'Initial points: {self.n_initial_points}')
# if total epochs are not set, max_epoch takes its place
if self.total_epochs < 1:
self.max_epoch = int(self.min_epochs + len(self.trials))
# initialize average best occurrence
self.avg_best_occurrence = self.min_epochs // self.n_jobs
def start(self) -> None:
""" Broom Broom """
self.random_state = self._set_random_state(self.config.get('hyperopt_random_state', None))
@ -887,22 +904,8 @@ class Hyperopt:
logger.info(f'Number of parallel jobs set as: {self.n_jobs}')
self.dimensions: List[Dimension] = self.hyperopt_space()
self.n_initial_points, self.min_epochs, self.search_space_size = self.calc_epochs(
self.dimensions, self.n_jobs, self.effort, self.total_epochs, self.n_points
)
# reduce random points by n_points in multi mode because asks are per job
if self.multi:
self.opt_n_initial_points = self.n_initial_points // self.n_points
else:
self.opt_n_initial_points = self.n_initial_points
logger.info(f"Min epochs set to: {self.min_epochs}")
# if total epochs are not set, max_epoch takes its place
if self.total_epochs < 1:
self.max_epoch = int(self.min_epochs + len(self.trials))
# initialize average best occurrence
self.avg_best_occurrence = self.min_epochs // self.n_jobs
self.setup_points()
logger.info(f'Initial points: {self.n_initial_points}')
if self.print_colorized:
colorama_init(autoreset=True)