def _run_ensemble_builder(tmp_dir, output_dir, basename, time_for_task, task, metric, ensemble_size, ensemble_nbest, ensemble_indices_dir, watcher, log_function): task_name = 'runEnsemble' watcher.start_task(task_name) time_left_for_ensembles = max(0, time_for_task - watcher.wall_elapsed( basename)) log_function( 'Start Ensemble with %5.2fsec time left' % time_left_for_ensembles) proc_ensembles = submit_process.run_ensemble_builder( tmp_dir=tmp_dir, dataset_name=basename, task_type=task, metric=metric, limit=time_left_for_ensembles, output_dir=output_dir, ensemble_size=ensemble_size, ensemble_nbest=ensemble_nbest, seed=get_auto_seed(), ensemble_indices_output_dir=ensemble_indices_dir ) watcher.stop_task(task_name) return proc_ensembles
def run_ensemble_builder(self, time_left_for_ensembles=None, max_iterations=None, ensemble_size=None): if self._ensemble_size > 0 or ensemble_size is not None: task_name = "runEnsemble" self._stopwatch.start_task(task_name) if time_left_for_ensembles is None: time_left_for_ensembles = max(0, self._time_for_task - self._stopwatch.wall_elapsed(self._dataset_name)) if max_iterations is None: max_iterations = -1 if ensemble_size is None: ensemble_size = self._ensemble_size # It can happen that run_ensemble_builder is called without # calling fit. if self._logger: self._logger.info("Start Ensemble with %5.2fsec time left" % time_left_for_ensembles) proc_ensembles = submit_process.run_ensemble_builder( tmp_dir=self._tmp_dir, dataset_name=self._dataset_name, task_type=self._task, metric=self._metric, limit=time_left_for_ensembles, output_dir=self._output_dir, ensemble_size=ensemble_size, ensemble_nbest=self._ensemble_nbest, seed=self._seed, shared_mode=self._shared_mode, max_iterations=max_iterations, precision=self.precision, ) self._stopwatch.stop_task(task_name) return proc_ensembles else: self._logger.info("Not starting ensemble script due to ensemble " "size 0.") return None
def run_ensemble_builder(self, time_left_for_ensembles=None, max_iterations=None, ensemble_size=None): if self._ensemble_size > 0 or ensemble_size is not None: task_name = 'runEnsemble' self._stopwatch.start_task(task_name) if time_left_for_ensembles is None: time_left_for_ensembles = max(0, self._time_for_task - self._stopwatch.wall_elapsed( self._dataset_name)) if max_iterations is None: max_iterations = -1 if ensemble_size is None: ensemble_size = self._ensemble_size # It can happen that run_ensemble_builder is called without # calling fit. if self._logger: self._logger.info( 'Start Ensemble with %5.2fsec time left' % time_left_for_ensembles) proc_ensembles = submit_process.run_ensemble_builder( tmp_dir=self._tmp_dir, dataset_name=self._dataset_name, task_type=self._task, metric=self._metric, limit=time_left_for_ensembles, output_dir=self._output_dir, ensemble_size=ensemble_size, ensemble_nbest=self._ensemble_nbest, seed=self._seed, shared_mode=self._shared_mode, max_iterations=max_iterations, precision=self.precision ) self._stopwatch.stop_task(task_name) return proc_ensembles else: self._logger.info('Not starting ensemble script due to ensemble ' 'size 0.') return None