问题标签 [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 回答
230 浏览

python - Understanding Intermediate Values and Pruning in Optuna

I am just curious for more information on what an intermediate step actually is and how to use pruning if you're using a different ml library that isn't in the tutorial section eg) XGB, Pytorch etc.

For example:

What is the point of the for step in range() section? Doesn't doing this just make the optimisation take more time and won't you yield the same result for every step in the loop?

I'm really trying to figure out the need for for step in range() and is it required every time you wish to use pruning?

0 投票
2 回答
112 浏览

python - 生成 optuna 网格的函数提供了 sklearn 管道

我将 sklearn 和 optuna 一起用于 HPO。我想创建一个自定义函数,它将 sklearn 管道作为输入并返回 optuna 特定的网格。返回 sklearn 特定的参数网格(即字典)似乎更直接(duh);这就是我到目前为止所得到的:

trial.suggest_ ...”部分不断“抱怨”并返回错误;虽然我理解原因,但我看不到任何解决方法。这甚至可能吗?有任何想法吗?感谢您的支持!

0 投票
0 回答
86 浏览

python - 我们如何在不使用 booster 对象的情况下使用 optuna 优化 XGBoost 超参数?

我目前正在使用 XGBoost 进行预测。我想知道哪一组超参数会提供最好的结果。我也使用了 optuna,但预测结果似乎不合时宜。

使用 Optuna 优化超参数,如下所示:

最佳试验的参数在 XGBoost 中用于预测。

0 投票
1 回答
58 浏览

python - 抑制 optunas cv_agg 的 binary_logloss 输出

如果我使用 LightGBMTunerCV 调整模型,我总是会得到 cv_agg 的 binary_logloss 的巨大结果。如果我使用更大的数据集执行此操作,则此(不必要的)io 会减慢优化过程的性能。

这是代码:

和输出:

有没有办法摆脱这个输出?

谢谢您的帮助!

0 投票
0 回答
426 浏览

lightgbm - Suppress LightGBM warnings in Optuna

I am getting below warnings while I am using Optuna to tune my model. Please tell me how to suppress these warnings?

0 投票
0 回答
36 浏览

pytorch - Optuna,ValueError:返回值必须是可浮动的。得到“无”

我正在使用 Optuna 进行 Hydra 框架的超参数搜索,但它抛出了这个错误:

这是什么意思?如何使返回值可浮动转换?

我的 config.yaml 看起来像这样:

0 投票
0 回答
68 浏览

python - 使用 Optuna 调整超参数的更经济的方法

我对机器学习比较陌生。我目前正在研究一个不平衡的二元分类问题,我需要测试不同的模型以及它们在不同类型的采样技术下的表现。我已经选择了一个名为 的管道model,它由一个预处理器ColumnTransformer、一个TomeLink采样器和一个KNNClassiefier估计器组成。调用时model.get_params(),我得到以下输出:

现在,正如您想象的那样,我需要优化模型的超参数。然而,两者都GridSearch需要RandomizedSearch永远运行,结果几乎总是不令人满意。出于这些原因,我决定接受Optuna.

示例和教程非常好,但经常使用 Optuna 进行深度学习。此外,在我看来,代码编写过程在直觉上似乎是错误的(对于短管道来说,编写网格很简单,但是像我这样的管道呢?)

因此:

有没有办法让网格插入到Optuna def objective(train) 函数中?例子表示赞赏!

0 投票
1 回答
61 浏览

python - 将 Optuna 研究从 Colab 保存到 Google Drive 时出错

我可以将随机文件保存到我的驱动器 colab 中:

工作正常,但是当我使用代码使用Optuna 的官方文档方法时

抛出错误:

0 投票
1 回答
48 浏览

python - 使用 Pytorch 和 Optuna 进行 DNN 的结果重现性

我找到了 7 个超参数的最佳结果,即:

  1. 层数,
  2. 节点大小,
  3. 激活函数,
  4. 学习率,
  5. 势头,
  6. 批量大小,
  7. 优化器

使用 Optuna 多目标优化。我将培训和验证损失最小化作为我的目标。由于调整参数的数量更多,我将每个跟踪的 epoch 数量减少为 50。然后我得到了最好的参数,进行了 Optuna 优化。我增加了 epoch 大小并使用torch.manual_seed. 但是在相同的第 50 个 epoch 之后获得的结果与我在 Optuna 结果中获得的结果不同。

我错过任何东西的原因是什么?我想在相同的条件下重现相同的结果!

0 投票
0 回答
57 浏览

pytorch - 使用 PyTorch 和 Optuna API 调整 nn.Module 类的超参数层数

我使用 PyTorch API 和 Optuna 创建了以下机器学习模型类。

NN的默认结构是:

  • 嵌入层(必须存在)
  • 输入层(必须存在)
  • 0、1、2隐藏层(可选,参数调整)
  • 输出层(必须存在)

我想搜索是否应该存在额外的 1 或 2 个隐藏层,或者是否需要更多的隐藏层 (0)。

上面创建init()方法的代码是从这里得到启发的。创建forward()方法的代码是从这里得到启发的。

更新

但是,当我从 API 运行 optuna 试验时,我得到以下异常的回报:

RuntimeError: mat1 和 mat2 形状不能相乘(64x14 和 3840x14)

NN模型层的打印语句:

我怎样才能解决这个问题?

是我正在使用的 colab 笔记本。