Integration¶
-
class
optuna.integration.
ChainerPruningExtension
(trial, observation_key, pruner_trigger)[源代码]¶ 用于对无望 trial 剪枝的 Chainer 扩展。
如果你想添加一个 Chainer Trainer 的监测验证集精确度的扩展的话,请参考 the example 。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。observation_key -- Pruning 的求值度量,比如
main/loss
和validation/main/accuracy
。具体请参考 chainer.Reporter reference <https://docs.chainer.org/en/stable/reference/pruner_trigger -- 执行剪枝的 trigger。
pruner_trigger
是一个`IntervalTrigger <https://docs.chainer.org/en/stable/reference/generated/ chainer.training.triggers.IntervalTrigger.html>`_ 或者 ManualScheduleTrigger 的实例。 IntervalTrigger 可以通过一个由间隔长度和单位构成的元组来指定,比如(1, 'epoch')
。
-
class
optuna.integration.
ChainerMNStudy
(study, comm)[源代码]¶ 一个将 Optuna 并入 CHainerMN 的
Study
wrapper。参见
ChainerMNStudy
提供了和Study
一样的接口。更多细节请参考optuna.study.Study
。如果你想优化一个用 ChainerMN 写的神经网络目标函数的话,请参考 the example。
- 参数
study --
Study
对象。comm -- A ChainerMN communicator.
-
optimize
(func, n_trials=None, timeout=None, catch=())[源代码]¶ 优化目标函数。
除了没有
n_jobs
参数外,该方法提供了和optuna.study.Study.optimize()
一样的接口。
-
class
optuna.integration.
CmaEsSampler
(x0=None, sigma0=None, cma_stds=None, seed=None, cma_opts=None, n_startup_trials=1, independent_sampler=None, warn_independent_sampling=True)[源代码]¶ 使用 cma 库作为后端的 sampler。
示例
使用
CmaEsSampler
来优化一个简单的二次函数。import optuna def objective(trial): x = trial.suggest_uniform('x', -1, 1) y = trial.suggest_int('y', -1, 1) return x**2 + y sampler = optuna.integration.CmaEsSampler() study = optuna.create_study(sampler=sampler) study.optimize(objective, n_trials=20)
注意,trial 的并行执行可能会影响 CMA-ES 的性能,尤其是在并行运行的 trial 数超过了 population size 的情况下。
- 参数
x0 -- 一个包含了 CMA-ES 初始参数的字典。默认情况下使用每一个分布中的
low
和high
的平均值。关于x0
的更多细节请参考 cma.CMAEvolutionStrategy 。sigma0 -- CMA-ES 的标准差。默认情况下
sigma0
是min_range / 6
,其中min_range
代表来搜索空间分布的最小范围。如果该分布是类别分布,那么min_range
就是len(choices) - 1
。关于sigma0
的更多细节参见 cma.CMAEvolutionStrategy 。cma_stds -- 一个包含每个参数的 sigma0 的乘数的字典。默认情况下其值是 1.0 。关于
cma_stds
的更多细节参见 cma.CMAEvolutionStrategy 。seed -- CMA-ES 的随机数种子。
cma_opts -- 向 cma.CMAEvolutionStrategy 构造函数传递的选项。注意,
cma_opts
中的BoundaryHandler
,bounds
,CMA_stds
和seed
都会被忽略,因为它是通过CmaEsSampler
自动添加的。n_startup_trials -- 在同一个 study 中指定数目的 trial 完成之前,采用的都是独立采样而不是 CMA-ES 算法采样。
independent_sampler -- 一个用于独立采样的
BaseSampler
实例。那些不包含在相对搜索空间内的参数都通过它来采样。CmaEsSampler
的搜索空间是通过intersection_search_space()
来确定的。如果设置成None
的话,默认会使用RandomSampler
。.. seealso::optuna.samplers
模块提供了 内置的独立 sampler,比如RandomSampler
和TPESampler
.warn_independent_sampling -- 如果该选项是
True
的话,当参数值是通过一个独立 sampler 来采样时,它会触发一个警告信息。注意,在每一个 study 中的第一个 trial总是通过独立 sampler 来采样的,所以此时不会触发警报信息。
-
class
optuna.integration.
FastAIPruningCallback
(learn, trial, monitor)[源代码]¶ 用于清除 FastAI 中无望 trial 的回调函数。
注解
该回调函数是为 fastai<2.0,而不是 fastai/fastai_dev 版本设计的。
如果你想添加一个监测
Learner
的验证集 loss 的 pruner 的话,请参考 the example 。示例
向
learn.fit
和learn.fit_one_cycle
注入一个 pruning 回调。learn.fit(n_epochs, callbacks=[FastAIPruningCallback(learn, trial, 'valid_loss')]) learn.fit_one_cycle( n_epochs, cyc_len, max_lr, callbacks=[FastAIPruningCallback(learn, trial, 'valid_loss')])
- 参数
learn -- fastai.basic_train.Learner.
trial -- 对应于目标函数本次求值的
Trial
。monitor -- Pruning 的求值度量,比如
valid_loss
和Accuracy
。具体请参考 fastai.Callback reference 。
-
class
optuna.integration.
PyTorchIgnitePruningHandler
(trial, metric, trainer)[源代码]¶ 用于清除无望 trial 的 PyTorch Ignite handler。
如果你想添加一个监测验证集 accuracy 的 pruner 的话,请参考 the example。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。metric -- 用于 pruning 的度量名,比如
accuracy
和loss
.trainer -- PyTorch Ignite 的 trainer engine。更多细节请参考 ignite.engine.Engine reference 。
-
class
optuna.integration.
KerasPruningCallback
(trial, monitor, interval=1)[源代码]¶ 用于清除无望 trial 的 Keras 回调函数。
如果你想添加一个监测验证集 accuracy 的 pruner 的话,请参考 the example 。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。monitor -- Pruning 的求值度量,比如
val_loss
和val_accuracy
。具体请参考 keras.Callback reference 。interval -- 每到第 n 个 epoch 检查是否要清除该 trial。默认情况下
interval=1
此时每个 epoch 之后pruning 都会执行一次。增加interval
可以先执行数个 epoch,然后再执行 pruning。
-
class
optuna.integration.
LightGBMPruningCallback
(trial, metric, valid_name='valid_0')[源代码]¶ 用于清除无望 trial 的 LightGBM 回调函数。
如果你想添加一个监测 LightGBM 模型的 AUC 的 pruner 的话,请参考 the example 。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。metric -- Pruning 的求值度量,比如
binary_error
和multi_error
。具体请参考 LightGBM reference 。valid_name -- 目标验证名。验证名是通过 train method 的
valid_names
选项来设定的。如果省略的话就采用 valid_0`,它是第一个验证的默认名。注意,如果你没有调用 train 方法而是调用了 cv method 的话,该参数会被忽略。
-
optuna.integration.lightgbm.
train
(*args: Any, **kwargs: Any) → Any[源代码]¶ 用于调整超参数的 LightGBM Training API 的 wrapper。
它逐步调整重要的超参数(比如
min_child_samples
和feature_fraction
),是 lightgbm.train() 的一个非正式替代品。参见 a simple example of LightGBM Tuner which optimizes the validation log loss of cancer detection.train()
是LightGBMTuner
的 wrapper。如果想使用 suspended/resumed optimization 和/或 parallelization 等 Optuna 特性的话,请使用LightGBMTuner
而不是该函数。可以传入给 lightgbm.train() 的参数。
注解
在 v0.18.0 中作为试验性特性引入,在未来版本中,该接口可能在没有预先告知的情况下被改变。参考 https://github.com/optuna/optuna/releases/tag/v0.18.0.
-
class
optuna.integration.lightgbm.
LightGBMTuner
(params: Dict[str, Any], train_set: lgb.Dataset, num_boost_round: int = 1000, valid_sets: Optional[VALID_SET_TYPE] = None, valid_names: Optional[Any] = None, fobj: Optional[Callable[[...], Any]] = None, feval: Optional[Callable[[...], Any]] = None, feature_name: str = 'auto', categorical_feature: str = 'auto', early_stopping_rounds: Optional[int] = None, evals_result: Optional[Dict[Any, Any]] = None, verbose_eval: Union[bool, int, None] = True, learning_rates: Optional[List[float]] = None, keep_training_booster: Optional[bool] = False, callbacks: Optional[List[Callable[[...], Any]]] = None, time_budget: Optional[int] = None, sample_size: Optional[int] = None, study: Optional[optuna.study.Study] = None, optuna_callbacks: Optional[List[Callable[[optuna.study.Study, optuna.trial._frozen.FrozenTrial], None]]] = None, model_dir: Optional[str] = None, verbosity: Optional[int] = 1)[源代码]¶ LightGBM 的超参数调节器。
它逐步调整下列超参数:
lambda_l1
,lambda_l2
,num_leaves
,feature_fraction
,bagging_fraction
,bagging_freq
和min_child_samples
.你可以在 this blog article 中找到该算法和其基准测试的细节。它是 Kohei Ozaki 由写的,Kohei Ozaki 是一个 Kaggle Grandmaster。
可以传入给 lightgbm.train() 的参数。专属
LightGBMTuner
的参数列在下面了:- 参数
time_budget -- 以秒计算的调参时间预算。
study -- 一个用于存储优化结果的
Study
实例。其中的Trial
由下列用户属性:elapsed_secs
是自优化开始以来消耗的时间。average_iteration_time
是一个 trial 中训练一个 booster 模型所需要的平均迭代时间。lgbm_params
是一个 JSON 序列化过的,存储 trial 中采用的 LightGBM 的参数的字典。optuna_callbacks -- 在每个trial 结束后触发的 Optuna 回调函数列表。其中每个函数必须接受两个下面这种顺序和类型的参数:
Study
andFrozenTrial
。注意,这不是 lightgbm.train() 的callbacks
参数。model_dir -- 用于存储 booster 的目录。默认情况下它是
None
,也不会存储 booster。如果你想在分布式的环境下获取get_best_booster()
的话,请设置共享目录(比如 NFS 上的目录)。否则,它会抛出ValueError
错误。booster 的文件名是有如下形式:{model_dir}/{trial_number}.pkl
(比如./boosters/0.pkl
)。
注解
在 v1.5.0 中作为试验性特性引入,在未来版本中,该接口可能在没有预先告知的情况下被改变。参考 https://github.com/optuna/optuna/releases/tag/v1.5.0.
-
property
best_booster
¶ 返回最佳 booster。
1.4.0 版后已移除: 请通过
get_best_booster
来获取最佳 booster。
-
property
best_params
¶ 返回最佳 booster 的参数。
-
property
best_score
¶ 返回最佳 booster 的分数。
-
get_best_booster
() → lgb.Booster[源代码]¶ 返回最佳 booster。
如果无法找到最佳 booster 的话,会抛出
ValueError
。为了避免这种情况,如果你要并行运行 trial 或者恢复调参的话,请通过设置__init__()
的model_dir
参数来存储 booster。
-
class
optuna.integration.lightgbm.
LightGBMTunerCV
(params: Dict[str, Any], train_set: lgb.Dataset, num_boost_round: int = 1000, folds: Union[Generator[Tuple[int, int], None, None], Iterator[Tuple[int, int]], BaseCrossValidator, None] = None, nfold: int = 5, stratified: bool = True, shuffle: bool = True, fobj: Optional[Callable[[...], Any]] = None, feval: Optional[Callable[[...], Any]] = None, feature_name: str = 'auto', categorical_feature: str = 'auto', early_stopping_rounds: Optional[int] = None, fpreproc: Optional[Callable[[...], Any]] = None, verbose_eval: Union[bool, int, None] = True, show_stdv: bool = True, seed: int = 0, callbacks: Optional[List[Callable[[...], Any]]] = None, time_budget: Optional[int] = None, sample_size: Optional[int] = None, study: Optional[optuna.study.Study] = None, optuna_callbacks: Optional[List[Callable[[optuna.study.Study, optuna.trial._frozen.FrozenTrial], None]]] = None, verbosity: int = 1)[源代码]¶ 带有交叉验证的 LightGBM 超参数 tuner。
它采用了和
LightGBMTuner
同样的逐步措施。LightGBMTunerCV
通过触发 lightgbm.cv() 来训练和验证 booster,而LightGBMTuner
则采用 lightgbm.train()。在 a simple example 这里可以看到一个在癌症检测上优化验证集上 log loss 的例子。除了
metrics
,init_model
和eval_train_metric
,其他参数都可以传递给 lightgbm.cv() 。LightGBMTunerCV
独有的参数列在下面了:- 参数
time_budget -- 以秒计算的调参时间预算。
study -- 一个用于存储优化结果的
Study
实例。其中的Trial
由下列用户属性:elapsed_secs
是自优化开始以来消耗的时间。average_iteration_time
是一个 trial 中训练一个 booster 模型所需要的平均迭代时间。lgbm_params
是一个 JSON 序列化过的,存储 trial 中采用的 LightGBM 的参数的字典。optuna_callbacks -- 在每个trial 结束后触发的 Optuna 回调函数列表。其中每个函数必须接受两个下面这种顺序和类型的参数:
Study
andFrozenTrial
。注意,这不是 lightgbm.train() 的callbacks
参数。
注解
在 v1.5.0 中作为试验性特性引入,在未来版本中,该接口可能在没有预先告知的情况下被改变。参考 https://github.com/optuna/optuna/releases/tag/v1.5.0.
-
property
best_params
¶ 返回最佳 booster 的参数。
-
property
best_score
¶ 返回最佳 booster 的分数。
-
class
optuna.integration.
MLflowCallback
(tracking_uri=None, metric_name='value')[源代码]¶ 用 MLflow 来追踪 Optuna trial 的回调函数。
该回调函数添加被 Optuna 追踪的相关信息到 MLflow 中。而对应的 MLflow 实验会按照 Optuna study 名来命名。
示例
给 Optuna 优化添加一个 MLflow 回调函数。
import optuna from optuna.integration.mlflow import MLflowCallback def objective(trial): x = trial.suggest_uniform('x', -10, 10) return (x - 2) ** 2 mlflc = MLflowCallback( tracking_uri=YOUR_TRACKING_URI, metric_name='my metric score', ) study = optuna.create_study(study_name='my_study') study.optimize(objective, n_trials=10, callbacks=[mlflc])
- 参数
tracking_uri -- MLflow tracking server 的 URI。更多细节请参考 mlflow.set_tracking_uri。
metric_name -- 度量名。由于度量本身只是一个数字,所以可以用 metric_name 为它命名,这样好让你之后知道它是 roc-auc 还是 accuracy。
注解
在 v1.4.0 中作为试验性特性引入,在未来版本中,该接口可能在没有预先告知的情况下被改变。参考 https://github.com/optuna/optuna/releases/tag/v1.4.0.
-
class
optuna.integration.
MXNetPruningCallback
(trial, eval_metric)[源代码]¶ 用于清除无望 trial 的 MXNet 回调函数。
如果你想添加一个监测 accuracy 的 pruner 的话,请参考 the example 。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。eval_metric -- 用于 pruning 的求值度量名,比如
cross-entropy
和accuracy
。如果使用像 mxnet.metrics.Accuracy 这样的默认度量的话,就使用它的默认度量名。对于定制的度量,就使用传递给构造函数的 metric_name。更多细节请参考 mxnet.metrics reference 。
-
class
optuna.integration.
PyTorchLightningPruningCallback
(trial, monitor)[源代码]¶ 用于清除无望 trial 的 PyTorch Lighting 回调函数。
如果你想添加一个监测 accuracy 的 pruner 的话,请参考 the example 。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。monitor -- Pruning 的求值度量,比如
val_loss
和val_acc
。这戏的度量是通过pytorch_lightning.LightningModule.training_step
或者pytorch_lightning.LightningModule.validation_end
返回的字典来获得的。因此,这些度量名取决于字典的格式。
-
class
optuna.integration.
SkoptSampler
(independent_sampler=None, warn_independent_sampling=True, skopt_kwargs=None, n_startup_trials=1)[源代码]¶ 以 Scikit-Optimize 为后端的 sampler。
示例
用
SkoptSampler
来优化一个简单的二次函数。import optuna def objective(trial): x = trial.suggest_uniform('x', -10, 10) y = trial.suggest_int('y', 0, 10) return x**2 + y sampler = optuna.integration.SkoptSampler() study = optuna.create_study(sampler=sampler) study.optimize(objective, n_trials=10)
- 参数
independent_sampler -- 一个用于独立采样的
BaseSampler
实例。那些不包含在相对搜索空间内的参数都通过它来采样。SkoptSampler
的搜索空间是通过intersection_search_space()
来确定的。如果设置成None
的话,默认会使用RandomSampler
。.. seealso::optuna.samplers
模块提供了 内置的独立 sampler,比如RandomSampler
和TPESampler
.warn_independent_sampling -- 如果该选项是
True
的话,当参数值是通过一个独立 sampler 来采样时,它会触发一个警告信息。注意,在每一个 study 中的第一个 trial总是通过独立 sampler 来采样的,所以此时不会触发警报信息。skopt_kwargs -- 传递给 skopt.Optimizer 的构造函数的参数。注意
skopt_kwargs
中的dimensions
参数会被忽略,因为它是通过SkoptSampler
自动添加的。n_startup_trials -- 在同一个 study 中指定数目的 trial 完成之前,采用的都是独立采样。
-
class
optuna.integration.
TensorFlowPruningHook
(trial, estimator, metric, run_every_steps)[源代码]¶ 用于清除无望 trial 的 TensorFlow SessionRunHook。
如果你想给 TensorFlow 的 estimator 添加一个 pruning hook 的话,请参考 the example。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。estimator -- 要使用的 estimator。
metric -- 用于 pruning 的度量名,比如
accuracy
和loss
。run_every_steps -- 监测 summary 文件的步长间隔。
-
class
optuna.integration.
TFKerasPruningCallback
(trial, monitor)[源代码]¶ 用于清除无望 trial 的 tf.keras 回调函数。
该回调函数是为 TensorFlow v1 和 v2 兼容设计的,但是只在 TensorFlow v1 上测试过。
如果你想添加一个监测 validation accuracy 的 pruning callback 的话,请参考 the example。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。monitor -- 用于 pruning 的度量名,比如
val_loss
和val_acc
。
-
class
optuna.integration.
XGBoostPruningCallback
(trial, observation_key)[源代码]¶ 用于清除无望 trial 的 XGBoost 回调函数。
如果你想添加一个监测 XGBoost 模型的 validation AUC 的 pruning callback 的话,请参考 the example 。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。observation_key -- Pruning 的求值度量,比如
validation-error
和validation-merror
。在使用 Scikit-Learn API 时,observation_key
中必须包含eval_set
的索引数,比如validation_0-error
andvalidation_0-merror
。更多细节请参考 XGBoost reference 中的eval_metric
。
-
class
optuna.integration.
OptunaSearchCV
(estimator, param_distributions, cv=5, enable_pruning=False, error_score=nan, max_iter=1000, n_jobs=1, n_trials=10, random_state=None, refit=True, return_train_score=False, scoring=None, study=None, subsample=1.0, timeout=None, verbose=0)[源代码]¶ 带有交叉验证的超参数搜索。
警告
该特性是试验性的,其接口在未来可能会改变。
- 参数
estimator -- 用于拟合数据的对象。它应当用于实现 scikit-learn estimator 接口。它至少要提供
score
或者scoring
。param_distributions -- 键为参数值为分布的字典。这些字典应当用于实现 Optuna 的分布接口。
cv -- 交叉验证策略。cv 的可能输入有:- 一个用于指定 CV splitter 中的 folds 个数的整数,- 一个 CV splitter,它是一个产生由索引构成的数组的 (train, validation) splits 的 iterable 对象,对于整数而言,如果 if
estimator
是一个 classifier 而y
是 binary 或 multiclass 的话,那么sklearn.model_selection.StratifiedKFold
会被采用。否则sklearn.model_selection.KFold
会被采用。enable_pruning -- 如果是
True
的话,当 estimator 支持partial_fit
时,pruning 会被执行。error_score -- 拟合过程中发生错误时用于指定 score 的值。如果设置成 'raise' 的话,就会抛出错误了。如果设置成数值的话,则
sklearn.exceptions.FitFailedWarning
会被抛出。这并不会影响 refit 步骤,因为后者总是抛出错误。max_iter -- epoch 数目的最大值。它只在 estimator 支持
partial_fit
时会被使用。n_jobs -- 并行运行 job 的数量。如果设置成
-1
的话,并行 job 的数量将等于处理器核心数。n_trials -- trial 数量。如果设置成
None
的话,trial 数目无上限。此时如果timeout
也是None
的话,study 会一直创建新 trial,直到接收到一个诸如 Ctrl+C 或 SIGTERM 的终止信号。这是运行时和求解质量之间的权衡。random_state -- 伪随机数生成器的种子。如果是整数的话,它就是被随机数生成器采用的种子。如果是
numpy.random.RandomState
对象的话,它就是随机数生成器本身。如果是None
的话,则自numpy.random
中来的全局随机状态会被采用。refit -- 如果设置成
True
的话,将用找到的最佳超参数重新拟合一次 estimator。该 estimator 可以通过best_estimator_
属性直接获得,并且可以通过predict
直接使用。return_train_score -- 如果设置成
True
的话,训练的 score 会被包含在内。计算训练 score 是用于搞清楚超参数设定如何影响 overfitting/underfitting 之间的平衡。不过,计算训练 score 可能消耗大量计算资源,而且严格来说,它对找出能产生最佳泛化效果的超参数而言不是必要的。scoring -- 用于评估验证集上预测结果的字符串或者 callable 对象。如果设置成
None
的话,estimator 上的score
会被采用。study -- 优化任务对应的 study,如果设置成
None
的话,就会创建一个新的 study。subsample -- 在超参数搜索过程中使用的样本比例,- 如果是整数的话,那么使用
subsample
个样本,- 如果是浮点数的话,就使用subsample
*X.shape[0]
个样本。timeout -- 按秒计的用于寻找合适模型的时间上限。如果设置成
None
的话,study 将在没有时间限制的情况运行。如果此时n_trials
也是None
的话,该 study 会一直创建新 trial,直到接收到一个诸如 Ctrl+C 或 SIGTERM 的终止信号。这是运行时和求解质量之间的权衡。verbose -- 冗余级别。设的越高,输出的信息越多。
-
best_estimator\_
通过搜多确定的 estimator。它只有在
refit
设置成True
的情况下可用
-
n_splits\_
交叉验证划分数
-
refit_time\_
用于再拟合最佳 estimator 的时间。它只有在
refit
设置成True
的情况下可用
-
sample_indices\_
超参数搜索过程中使用过的样本索引。
-
scorer\_
Scorer function.
-
study\_
Actual study.
实际案例
import optuna from sklearn.datasets import load_iris from sklearn.svm import SVC clf = SVC(gamma='auto') param_distributions = { 'C': optuna.distributions.LogUniformDistribution(1e-10, 1e+10) } optuna_search = optuna.integration.OptunaSearchCV( clf, param_distributions ) X, y = load_iris(return_X_y=True) optuna_search.fit(X, y) y_pred = optuna_search.predict(X)
-
property
best_index_
¶ 对应于最佳参数设置的索引
-
property
best_score_
¶ 最佳 estimator 的平均交叉验证 score。
-
property
classes_
¶ Class labels.
-
property
decision_function
¶ 在最佳 estimator 上调用
decision_function
。它只有在对应的 estimator支持
decision_function
和refit
设置成True
的情况下可用。"
-
fit
(X, y=None, groups=None, **fit_params)[源代码]¶ 用所有参数来跑拟合。
- 参数
X -- 训练数据
y -- 目标变量。
groups -- 将数据集划分成训练/测试集时给样本打的标签。
**fit_params -- 传递给 estimator 上的
fit
的参数。
- 返回
Return self.
- 返回类型
self
-
property
inverse_transform
¶ 调用最佳 estimator 的
inverse_transform
。它只有在对应的 estimator支持
inverse_transform
和refit
设置成True
的情况下可用。
-
property
n_trials_
¶ trial 实际数量。
-
property
predict_log_proba
¶ 调用最佳 predict_log_proba 的
predict
。它只有在对应的 estimator支持
predict_log_proba
和refit
设置成True
的情况下可用。
-
property
predict_proba
¶ 调用最佳 estimator 的
predict_proba
。它只有在对应的 estimator支持
predict_proba
和refit
设置成True
的情况下可用。
-
property
score_samples
¶ 调用最佳 estimator 的
score_samples
。它只有在对应的 estimator支持
score_samples
和refit
设置成True
的情况下可用。
-
class
optuna.integration.
AllenNLPExecutor
(trial: optuna.trial._trial.Trial, config_file: str, serialization_dir: str, metrics: str = 'best_validation_accuracy', *, include_package: Union[str, List[str], None] = None)[源代码]¶ 为了让 Jsonnet 配置文件在 Optuna 中可用的 AllenNLP 扩展。
这是个试验性的特性,因为 AllenNLP 的下一个主要版本将发行。而该接口可能在没有提前告知更新的情况下改变。
参见 objective function 和 config file 的例子。
- 参数
trial -- 对应于目标函数本次求值的
Trial
。config_file -- AllenNLP 的配置文件。其中超参数应当在外面套一层
std.extVar
。参见 the config example.serialization_dir -- 用于存储模型权重和日志的路径。
metrics -- 用于评估
objective
结果的度量。include_package -- 要包含的额外包,更多信息参见 AllenNLP documentation.
注解
在 v1.4.0 中作为试验性特性引入,在未来版本中,该接口可能在没有预先告知的情况下被改变。参考 https://github.com/optuna/optuna/releases/tag/v1.4.0.
-
optuna.integration.allennlp.
dump_best_config
(input_config_file: str, output_config_file: str, study: optuna.study.Study) → None[源代码]¶ 在 study 中的最佳参数更新后存储 JSON 配置文件。
- 参数
input_config_file -- 被
AllenNLPExecutor
使用的输入 Jsonnet 配置文件。output_config_file -- 输出 JSON 配置文件。
study --
Study
实例。注意它必须在optimize()
已经被调用的情况下使用。