Пример #1
0
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
Пример #2
0
    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
Пример #3
0
    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