问题标签 [optuna]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
76 浏览

python - 从最优超参数的字典项创建列表

我正在使用optuna框架为我的预期CNN网络选择最佳参数,包括层数、层中的过滤器、优化器等。我可以确认我的最佳参数是一个包含以下内容的字典:

然后,我如何形成一个包含层数、退出等的列表study.best_params,例如:

目标是访问这些值并创建我的网络架构,类似于:

0 投票
1 回答
255 浏览

performance - 提高自动编码器网络的性能

几天来,我正在努力提高我的自动编码器网络的性能,从更改网络架构到手动调整一些参数,以及最近使用optuna来优化 hpyerparameters。网络性能没有显着改善。

我可以知道您是否可以提出一些建议来改进此模型?

代码:

创建一个 optuna 研究:

然后用 `study 参数训练模型,如下所示:

不幸的是,尽管做出了所有这些努力,但我的模型性能并没有显着改善。你建议我应该进一步做什么?

0 投票
1 回答
397 浏览

xgboost - Suggest_int() 缺少 1 个必需的位置参数:Optuna 上的“高”错误

我有以下 Optuna 代码来为 Xgboost 分类器进行超参数调整。

它不断给我以下错误:

非常感谢

0 投票
1 回答
41 浏览

optuna - optuna cmaes 初始值为 x0?

我的代码:

然后输出

为什么算法不按照我给的x0做初值

0 投票
1 回答
351 浏览

python - Optuna 从“外部”传递参数字典

我正在使用 Optuna 来优化一些目标函数。我想创建“包装”标准 Optuna 代码的自定义类。

例如,这是我的课(它仍在进行中!):

我试图在这个类中包装 optuna 优化的所有“逻辑”,而不是每次都编写如下代码(来自文档):

我想让我的代码“模块化”并将所有内容合并到一个类中。我的最终目标是根据函数中给定的输入模型设置优化函数的不同“模板” __init__

所以,回到主要问题,我想从param字典之外传递。基本上我希望能够从我的班级之外声明它并在__init__函数中传递我的字典。

但是,Optuna 代码中常用的范围和分布取决于trial对象,因此我无法执行以下操作:

是否有任何解决方法或解决方案可以通过这本字典?

0 投票
1 回答
131 浏览

python - Optuna ConvergenceWarning 上 Lasso 超参数调整研究

使用 Optuna 微调我的 Lasso 模型时,我得到以下 ConvergenceWarning .. 是否可以增加 nr. 迭代次数?我增加了 n_trials 但没有帮助。

我的代码:

错误/警告:

/opt/conda/lib/python3.7/site-packages/sklearn/linear_model/_coordinate_descent.py:532:ConvergenceWarning:

目标没有收敛。您可能希望增加迭代次数。对偶间隙:0.02194362081235468,公差:0.01627441311545211

0 投票
0 回答
750 浏览

python - optuna.integration.lightGBM 自定义优化指标

我正在尝试使用 optuna 优化 lightGBM 模型。

阅读文档后,我注意到可以使用两种方法,如此处所述:LightGBM Tuner: New Optuna Integration for Hyperparameter Optimization

第一种方法使用 optuna 优化的“标准”方法(目标函数 + 试验),第二种方法将所有内容与.train()函数包装在一起。第一个基本上尝试超参数值的组合,而第二个则按照超参数的逐步方法进行优化。

这两种方法显示在 optuna github 存储库中的以下代码示例中:

  1. 第一种方法
  2. 第二种方法

两种代码都对相同的参数执行完全相同的优化(此处描述了第二种方法的优化参数),但方式不同(组合与逐步)。

我的问题是:

  1. 第二种方法是否可以指定自定义评估指标?在第一个中,我可以使用任何自定义指标轻松更改 github 示例中使用的准确性。
    作为一个例子,我可以写:

此代码将返回使我的自定义指标最大化的 lightGBM 模型的参数。但是,在第二种方法中,我无法指定自己的自定义指标。

更新: 我设法在第二种方法中定义了我自己的自定义指标及其用法。一个最小的可重现代码如下(只需使用train_test_splitscikit 传递数据):

但是 Optuna 似乎无法根据我的自定义指标选择最佳试用版,事实上,我收到以下错误:

[W 2021-05-16 15:56:48,759] 试验 0 由于以下错误而失败:KeyError('custom') Traceback(最近一次调用最后一次):文件“C:\Users\Mattia\anaconda3\envs\rec_sys_challenge \lib\site-packages\optuna_optimize.py”,第 217 行,在 _run_trial value_or_values = func(trial) 文件“C:\Users\Mattia\anaconda3\envs\rec_sys_challenge\lib\site-packages\optuna\integration_lightgbm_tuner\optimize. py”,第 251 行,调用 val_score = self._get_booster_best_score(booster) 文件“C:\Users\Mattia\anaconda3\envs\rec_sys_challenge\lib\site-packages\optuna\integration_lightgbm_tuner\optimize.py”,第 118 行,在_get_booster_best_score val_score = booster.best_score[valid_name][metric] KeyError: 'custom'

这似乎是库的问题(您可以在此处找到更多信息:GitHub 问题),我尝试了许多建议的解决方案,但都没有奏效。

有什么帮助吗?

0 投票
1 回答
64 浏览

optuna - “TPESampler”对象没有属性“_group”

今天,当我在 Optuna 2.8.0 上加载Colab后尝试优化它时,我的研究中出现了以下错误。每次试验开始或结束时,我都会使用 joblib 将研究保存在每个试验的单独文件中。我以前从来没有遇到过这个问题,也不知道是什么原因造成的。

Colab 显示以下跟踪:

PS。有趣的是,我的本地机器上似乎不存在这项研究的问题。我使用版本 2.5.0。

0 投票
2 回答
1336 浏览

machine-learning - 如何将 optuna 的 study.optimize 详细程度设置为 0?

我想将 optuna 的 study.optimize 详细程度设置为 0。我想optuna.logging.set_verbosity(0)可能会这样做,但我仍然会获得Trial 0 finished with value ....每次试验的更新

这样做的正确方法是什么?不幸的是,通过文档进行广泛搜索仍然只会导致上述方法。

提前谢谢了

0 投票
1 回答
151 浏览

python - 用 optuna 定义回归问题的超参数搜索空间

教程展示了如何使用 sklearn 解决回归问题并使用 Optuna 优化 LightGBM 模型的超参数。我立即注意到的一件事是,他们在训练回归模型之前没有对任何参数进行归一化。在这个问题中,有什么理由不需要规范化吗?

我还尝试将参数(节点编号、层编号、激活函数、学习率)传递给objective函数,如2. Use "trial" module to define hyperparameters dynamically!. 我正在阅读文档,我对如何将超参数搜索空间合并到objective函数中感到困惑。