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 的
Studywrapper。参见
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 回调函数列表。其中每个函数必须接受两个下面这种顺序和类型的参数:
StudyandFrozenTrial。注意,这不是 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 回调函数列表。其中每个函数必须接受两个下面这种顺序和类型的参数:
StudyandFrozenTrial。注意,这不是 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-errorandvalidation_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()已经被调用的情况下使用。