def objective(trial: optuna.trial.Trial, value: float) -> float: trial.set_system_attr( optuna.integration.lightgbm_tuner.optimize._STEP_NAME_KEY, "step{:.0f}".format(value), ) return trial.suggest_uniform("x", value, value)
def mo_objective_test_upgrade(trial: optuna.trial.Trial) -> Tuple[float, float]: x = trial.suggest_float("x", -5, 5) y = trial.suggest_int("y", 0, 10) z = cast(float, trial.suggest_categorical("z", [-5, 0, 5])) trial.set_system_attr("a", 0) trial.set_user_attr("b", 1) return x, x ** 2 + y ** 2 + z ** 2
def wrapper(trial: optuna.trial.Trial) -> Union[float, Sequence[float]]: study = trial.study self._initialize_experiment(study) with mlflow.start_run(run_name=str(trial.number), nested=self._nest_trials) as run: trial.set_system_attr(RUN_ID_ATTRIBUTE_KEY, run.info.run_id) return func(trial)
def objective_test_upgrade(trial: optuna.trial.Trial) -> float: x = trial.suggest_uniform("x", -5, 5) # optuna==0.9.0 does not have suggest_float. y = trial.suggest_int("y", 0, 10) z = cast(float, trial.suggest_categorical("z", [-5, 0, 5])) trial.set_system_attr("a", 0) trial.set_user_attr("b", 1) trial.report(0.5, step=0) return x ** 2 + y ** 2 + z ** 2
def f(trial: optuna.trial.Trial) -> float: x = trial.suggest_int("x", 1, 1) y = trial.suggest_categorical("y", (2.5, )) assert isinstance(y, float) trial.set_user_attr("train_loss", 3) trial.set_system_attr("foo", "bar") value = x + y # 3.5 # Test reported intermediate values, although it in practice is not "intermediate". trial.report(value, step=0) return value
def _postprocess( self, trial: optuna.trial.Trial, val_score: float, elapsed_secs: float, average_iteration_time: float, ) -> None: if self.pbar is not None: self.pbar.set_description(self.pbar_fmt.format(self.step_name, self.best_score)) self.pbar.update(1) self.report.append( dict( # Since v1.2.0, action was concatenation of parameter names. Currently, it is # explicitly given to distinguish steps which tune the same parameters. action=self.step_name, trial=self.trial_count, value=str(trial.params), val_score=val_score, elapsed_secs=elapsed_secs, average_iteration_time=average_iteration_time, ) ) trial.set_system_attr(_ELAPSED_SECS_KEY, elapsed_secs) trial.set_system_attr(_AVERAGE_ITERATION_TIME_KEY, average_iteration_time) trial.set_system_attr(_STEP_NAME_KEY, self.step_name) trial.set_system_attr(_LGBM_PARAMS_KEY, json.dumps(self.lgbm_params)) self.trial_count += 1
def _postprocess( self, trial: optuna.trial.Trial, elapsed_secs: float, average_iteration_time: float ) -> None: if self.pbar is not None: self.pbar.set_description(self.pbar_fmt.format(self.step_name, self.best_score)) self.pbar.update(1) trial.set_system_attr(_ELAPSED_SECS_KEY, elapsed_secs) trial.set_system_attr(_AVERAGE_ITERATION_TIME_KEY, average_iteration_time) trial.set_system_attr(_STEP_NAME_KEY, self.step_name) trial.set_system_attr(_LGBM_PARAMS_KEY, json.dumps(self.lgbm_params)) self.trial_count += 1
def f(trial: optuna.trial.Trial) -> float: trial.set_system_attr("system_message", "test") assert trial.system_attrs["system_message"] == "test" return 0.0