本文整理汇总了Python中optuna.create_study方法的典型用法代码示例。如果您正苦于以下问题:Python optuna.create_study方法的具体用法?Python optuna.create_study怎么用?Python optuna.create_study使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类optuna
的用法示例。
在下文中一共展示了optuna.create_study方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: initialize_optuna
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def initialize_optuna(self):
try:
train_env = DummyVecEnv([lambda: TradingEnv(self.data_provider)])
model = self.Model(self.Policy, train_env, nminibatches=1)
strategy = self.Reward_Strategy()
self.study_name = f'{model.__class__.__name__}__{model.act_model.__class__.__name__}__{strategy.__class__.__name__}'
except:
self.study_name = f'UnknownModel__UnknownPolicy__UnknownStrategy'
self.optuna_study = optuna.create_study(
study_name=self.study_name, storage=self.params_db_path, load_if_exists=True)
self.logger.debug('Initialized Optuna:')
try:
self.logger.debug(
f'Best reward in ({len(self.optuna_study.trials)}) trials: {self.optuna_study.best_value}')
except:
self.logger.debug('No trials have been finished yet.')
示例2: optimize_model
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def optimize_model(task, param_name, test_size: float, binary=False) -> None:
x, y = task.create_train_data()
def objective(trial):
train_x, test_x, train_y, test_y = train_test_split(x, y, test_size=test_size)
param = redshells.factory.get_optuna_param(param_name, trial)
model = task.create_model()
model.set_params(**param)
model.fit(train_x, train_y)
predictions = model.predict(test_x)
if binary:
predictions = np.rint(predictions)
return 1.0 - sklearn.metrics.accuracy_score(test_y, predictions)
study = optuna.create_study()
study.optimize(objective, n_trials=100)
task.dump(dict(best_params=study.best_params, best_value=study.best_value))
示例3: main
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def main():
study = optuna.create_study(direction="maximize")
study.optimize(objective, n_trials=25)
pruned_trials = [t for t in study.trials if t.state == optuna.trial.TrialState.PRUNED]
complete_trials = [t for t in study.trials if t.state == optuna.trial.TrialState.COMPLETE]
print("Study statistics: ")
print(" Number of finished trials: ", len(study.trials))
print(" Number of pruned trials: ", len(pruned_trials))
print(" Number of complete trials: ", len(complete_trials))
print("Best trial:")
trial = study.best_trial
print(" Value: ", trial.value)
print(" Params: ")
for key, value in trial.params.items():
print(" {}: {}".format(key, value))
shutil.rmtree(MODEL_DIR)
示例4: main
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def main():
study = optuna.create_study(direction="maximize")
study.optimize(objective, n_trials=25, timeout=600)
print("Number of finished trials: ", len(study.trials))
print("Best trial:")
trial = study.best_trial
print(" Value: ", trial.value)
print(" Params: ")
for key, value in trial.params.items():
print(" {}: {}".format(key, value))
shutil.rmtree(MODEL_DIR)
示例5: test_plot_slice_log_scale
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_plot_slice_log_scale():
# type: () -> None
study = create_study()
study.add_trial(
create_trial(
value=0.0,
params={"x_linear": 1.0, "y_log": 1e-3,},
distributions={
"x_linear": UniformDistribution(0.0, 3.0),
"y_log": LogUniformDistribution(1e-5, 1.0),
},
)
)
# Plot a parameter.
figure = plot_slice(study, params=["y_log"])
assert figure.layout["xaxis_type"] == "log"
figure = plot_slice(study, params=["x_linear"])
assert figure.layout["xaxis_type"] is None
# Plot multiple parameters.
figure = plot_slice(study)
assert figure.layout["xaxis_type"] is None
assert figure.layout["xaxis2_type"] == "log"
示例6: test_sample_relative_n_startup_trials
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_sample_relative_n_startup_trials() -> None:
independent_sampler = DeterministicRelativeSampler({}, {})
sampler = optuna.samplers.CmaEsSampler(
n_startup_trials=2, independent_sampler=independent_sampler
)
study = optuna.create_study(sampler=sampler)
def objective(t: optuna.Trial) -> float:
value = t.suggest_int("x", -1, 1) + t.suggest_int("y", -1, 1)
if t.number == 0:
raise Exception("first trial is failed")
return float(value)
# The independent sampler is used for Trial#0 (FAILED), Trial#1 (COMPLETE)
# and Trial#2 (COMPLETE). The CMA-ES is used for Trial#3 (COMPLETE).
with patch.object(
independent_sampler, "sample_independent", wraps=independent_sampler.sample_independent
) as mock_independent, patch.object(
sampler, "sample_relative", wraps=sampler.sample_relative
) as mock_relative:
study.optimize(objective, n_trials=4, catch=(Exception,))
assert mock_independent.call_count == 6 # The objective function has two parameters.
assert mock_relative.call_count == 4
示例7: test_log_uniform
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_log_uniform(sampler_class, distribution):
# type: (typing.Callable[[], BaseSampler], LogUniformDistribution) -> None
study = optuna.study.create_study(sampler=sampler_class())
points = np.array(
[
study.sampler.sample_independent(study, _create_new_trial(study), "x", distribution)
for _ in range(100)
]
)
assert np.all(points >= distribution.low)
assert np.all(points < distribution.high)
assert not isinstance(
study.sampler.sample_independent(study, _create_new_trial(study), "x", distribution),
np.floating,
)
示例8: test_discrete_uniform
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_discrete_uniform(sampler_class, distribution):
# type: (typing.Callable[[], BaseSampler], DiscreteUniformDistribution) -> None
study = optuna.study.create_study(sampler=sampler_class())
points = np.array(
[
study.sampler.sample_independent(study, _create_new_trial(study), "x", distribution)
for _ in range(100)
]
)
assert np.all(points >= distribution.low)
assert np.all(points <= distribution.high)
assert not isinstance(
study.sampler.sample_independent(study, _create_new_trial(study), "x", distribution),
np.floating,
)
# Check all points are multiples of distribution.q.
points = points
points -= distribution.low
points /= distribution.q
round_points = np.round(points)
np.testing.assert_almost_equal(round_points, points)
示例9: test_int
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_int(sampler_class, distribution):
# type: (typing.Callable[[], BaseSampler], IntUniformDistribution) -> None
study = optuna.study.create_study(sampler=sampler_class())
points = np.array(
[
study.sampler.sample_independent(study, _create_new_trial(study), "x", distribution)
for _ in range(100)
]
)
assert np.all(points >= distribution.low)
assert np.all(points <= distribution.high)
assert not isinstance(
study.sampler.sample_independent(study, _create_new_trial(study), "x", distribution),
np.integer,
)
示例10: test_categorical
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_categorical(sampler_class, choices):
# type: (typing.Callable[[], BaseSampler], Sequence[CategoricalChoiceType]) -> None
distribution = CategoricalDistribution(choices)
study = optuna.study.create_study(sampler=sampler_class())
def sample():
# type: () -> float
trial = _create_new_trial(study)
param_value = study.sampler.sample_independent(study, trial, "x", distribution)
return distribution.to_internal_repr(param_value)
points = np.array([sample() for _ in range(100)])
# 'x' value is corresponding to an index of distribution.choices.
assert np.all(points >= 0)
assert np.all(points <= len(distribution.choices) - 1)
round_points = np.round(points)
np.testing.assert_almost_equal(round_points, points)
示例11: test_nan_objective_value
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_nan_objective_value(sampler_class):
# type: (typing.Callable[[], BaseSampler]) -> None
study = optuna.create_study(sampler=sampler_class())
def objective(trial, base_value):
# type: (Trial, float) -> float
return trial.suggest_uniform("x", 0.1, 0.2) + base_value
# Non NaN objective values.
for i in range(10, 1, -1):
study.optimize(lambda t: objective(t, i), n_trials=1, catch=())
assert int(study.best_value) == 2
# NaN objective values.
study.optimize(lambda t: objective(t, float("nan")), n_trials=1, catch=())
assert int(study.best_value) == 2
# Non NaN objective value.
study.optimize(lambda t: objective(t, 1), n_trials=1, catch=())
assert int(study.best_value) == 1
示例12: test_sample_independent_seed_fix
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_sample_independent_seed_fix() -> None:
study = optuna.create_study()
dist = optuna.distributions.UniformDistribution(1.0, 100.0)
past_trials = [frozen_trial_factory(i, dist=dist) for i in range(1, 8)]
# Prepare a trial and a sample for later checks.
trial = frozen_trial_factory(8)
sampler = TPESampler(n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
suggestion = sampler.sample_independent(study, trial, "param-a", dist)
sampler = TPESampler(n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
assert sampler.sample_independent(study, trial, "param-a", dist) == suggestion
sampler = TPESampler(n_startup_trials=5, seed=1)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
assert sampler.sample_independent(study, trial, "param-a", dist) != suggestion
示例13: test_sample_independent_prior
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_sample_independent_prior() -> None:
study = optuna.create_study()
dist = optuna.distributions.UniformDistribution(1.0, 100.0)
past_trials = [frozen_trial_factory(i, dist=dist) for i in range(1, 8)]
# Prepare a trial and a sample for later checks.
trial = frozen_trial_factory(8)
sampler = TPESampler(n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
suggestion = sampler.sample_independent(study, trial, "param-a", dist)
sampler = TPESampler(consider_prior=False, n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
assert sampler.sample_independent(study, trial, "param-a", dist) != suggestion
sampler = TPESampler(prior_weight=0.5, n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
assert sampler.sample_independent(study, trial, "param-a", dist) != suggestion
示例14: test_sample_independent_misc_arguments
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_sample_independent_misc_arguments() -> None:
study = optuna.create_study()
dist = optuna.distributions.UniformDistribution(1.0, 100.0)
past_trials = [frozen_trial_factory(i, dist=dist) for i in range(1, 8)]
# Prepare a trial and a sample for later checks.
trial = frozen_trial_factory(8)
sampler = TPESampler(n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
suggestion = sampler.sample_independent(study, trial, "param-a", dist)
# Test misc. parameters.
sampler = TPESampler(n_ei_candidates=13, n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
assert sampler.sample_independent(study, trial, "param-a", dist) != suggestion
sampler = TPESampler(gamma=lambda _: 5, n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
assert sampler.sample_independent(study, trial, "param-a", dist) != suggestion
sampler = TPESampler(
weights=lambda i: np.asarray([i * 0.11 for i in range(7)]), n_startup_trials=5, seed=0
)
with patch("optuna.Study.get_trials", return_value=past_trials):
assert sampler.sample_independent(study, trial, "param-a", dist) != suggestion
示例15: test_sample_independent_log_uniform_distributions
# 需要导入模块: import optuna [as 别名]
# 或者: from optuna import create_study [as 别名]
def test_sample_independent_log_uniform_distributions() -> None:
"""Prepare sample from uniform distribution for cheking other distributions."""
study = optuna.create_study()
uni_dist = optuna.distributions.UniformDistribution(1.0, 100.0)
past_trials = [frozen_trial_factory(i, dist=uni_dist) for i in range(1, 8)]
trial = frozen_trial_factory(8)
sampler = TPESampler(n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
uniform_suggestion = sampler.sample_independent(study, trial, "param-a", uni_dist)
# Test sample from log-uniform is different from uniform.
log_dist = optuna.distributions.LogUniformDistribution(1.0, 100.0)
past_trials = [frozen_trial_factory(i, dist=log_dist) for i in range(1, 8)]
trial = frozen_trial_factory(8)
sampler = TPESampler(n_startup_trials=5, seed=0)
with patch.object(study._storage, "get_all_trials", return_value=past_trials):
loguniform_suggestion = sampler.sample_independent(study, trial, "param-a", log_dist)
assert 1.0 <= loguniform_suggestion < 100.0
assert uniform_suggestion != loguniform_suggestion