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

python-3.x - 指定要在 optuna (lightgbm) 中搜索的固定参数和参数

我刚刚找到了 Optuna,似乎它们与 lightGBM 集成在一起,但我很难看到我可以在哪里修复参数,例如scoring="auc"在哪里可以定义一个网格空间来搜索,例如num_leaves=[1,2,5,10].

https://github.com/optuna/optuna/blob/master/examples/lightgbm_tuner_simple.py为例,他们只是定义了一个params带有一些固定参数的字典(所有参数都没有在该字典中指定吗?),以及文档指出

它以逐步的方式调整重要的超参数(例如 min_child_samples 和 feature_fraction)

如何控制调整哪些参数以及在哪些空间中调整,以及如何修复一些参数?

0 投票
1 回答
1684 浏览

pytorch - Optuna Pytorch:目标函数的返回值不能转换为浮点数

正如您在上面看到的,我正在尝试运行 Optuna 试验来为我的 CNN 模型搜索最佳超参数。

但是,当我运行上面的代码来调整并找出我的最佳参数时,发生了跟随错误,即使我仍然得到 epoch 损失和值,试验似乎也失败了。请指教谢谢!

0 投票
1 回答
124 浏览

python - Optuna 试用版的 def__init__ 中的附加参数

正如你所看到的,def __init__已经有了selfin_features作为变量。我正在考虑添加另一个变量trial(它是 Optuna 包的一部分)以适应

在上面的代码中。请告知如何,大多数只有来源只有def __init__ (self, trial),这非常简单,但就我而言,我有 3 个变量要在目标中传递。

0 投票
2 回答
1197 浏览

python - Optuna 在很多试验中建议相同的参数值(重复试验浪费时间和预算)

出于某种原因,Optuna TPESampler 和 RandomSampler 对任何参数多次尝试相同的建议整数值(也可能是浮点数和 loguniforms)。我找不到阻止它再次建议相同值的方法。在 100 次试验中,有不少只是重复的。在 100 次试验中,唯一建议值计数最终约为 80-90。如果我包含更多用于调整的参数,比如 3 个,我什至会看到所有 3 个参数在 100 次试验中都获得相同的值几次。

就像这样。75 for min_data_in_leaf 被使用了 3 次:

[I 2020-11-14 14:44:05,320] 试验 8 完成了值:45910.54012028659 和参数:{'min_data_in_leaf': 75}。最好的是试用 4,其值为:45805.19030897498。

[I 2020-11-14 14:44:07,876] 试验 9 完成值:45910.54012028659 和参数:{'min_data_in_leaf': 75}。最好的是试用 4,其值为:45805.19030897498。

[I 2020-11-14 14:44:10,447] 试验 10 完成了值:45831.75933279074 和参数:{'min_data_in_leaf': 43}。最好的是试用 4,其值为:45805.19030897498。

[I 2020-11-14 14:44:13,502] 试验 11 完成值:46125.39810101329 和参数:{'min_data_in_leaf': 4}。最好的是试用 4,其值为:45805.19030897498。

[I 2020-11-14 14:44:16,547] 试验 12 完成了值:45910.54012028659 和参数:{'min_data_in_leaf': 75}。最好的是试用 4,其值为:45805.19030897498。

下面的示例代码:

0 投票
0 回答
257 浏览

machine-learning - 使用 Optuna 优化 CNN 的滤波器大小

我创建了一个 CNN,用于根据大小的输入图像对三个类别进行分类39 x 39。我正在使用 Optuna 优化网络参数。对于 Optuna,我定义了以下参数进行优化:

我的网络如下所示:

我正在使用 Optuna 优化(最小化)验证损失。网络中最多有 4 个块,每个块的过滤器数量加倍。这意味着例如第一个块中的 64 个,第二个块中的 128 个,第三个块中的 256 个,依此类推。有两个问题。首先,当我们从例如 256 个过滤器和总共 4 个块开始时,在最后一个块中将有 2048 个过滤器,这太多了。

是否可以使num_filters参数依赖于num_blocks参数?这意味着如果有更多块,则起始过滤器大小应该更小。因此,例如,如果num_blocks选择为 4,num_filters则应仅从 32、64 和 128 中采样。

其次,我认为将滤波器大小加倍是很常见的,但在最大池化层(类似于 VGG)之前,也有具有恒定滤波器大小或两个卷积(具有相同数量的滤波器)的网络等等。是否可以调整 Optuna 优化以涵盖所有这些变化?

0 投票
1 回答
180 浏览

pytorch - Pytorch CNN 上的 Optuna

我尝试在 Optuna 参数调整试验中添加过滤器 1 和 2 的数量,如下所示,但出现以下错误。试验 0 设法通过,但试验 1 没有。我对批量大小进行了调整,但使用不同的推荐批量大小会出现相同的错误格式。

0 投票
1 回答
118 浏览

pytorch - CNN forward 函数,AutoTuning 层数

正如您在上面看到的,我对参数进行了一些 Optuna 调整,包括调整层数。

我现在需要对上面的 forward 函数做同样的事情,我做了下面的伪代码,但它不会运行,请告知如何。主要问题是将 for 循环函数合并到 forward 函数中。

0 投票
1 回答
352 浏览

python - Optuna 超参数优化:定义目标函数之外的超参数空间

有人知道如何使用 Optuna API 定义目标函数之外的超参数空间吗?

我想通过初始化 Objective 类来提供超参数空间(如 metric 和 training/testing_data)。所以我可以在 optuna 的目标函数之外定义 hp 空间。由于定义 hp 空间的方法是使用试验对象完成的(并且这只存在于目标函数内部),我很难找到一种仍然在外部定义它的方法。

请参阅下面的完整代码:

任何想法如何做到这一点都会很棒。

0 投票
1 回答
122 浏览

python - 在 Optuna 研究期间动态添加/删除参数时会发生什么?

Optuna 的常见问题解答在研究期间动态调整参数范围时给出了明确的答案:它没有问题,因为每个采样器都是单独定义的。

但是添加和/或删除参数呢?Optuna 是否能够处理此类调整?

这样做时我注意到的一件事是,在结果数据框中,这些参数获取nan其他试验的条目。能够将这些nans 设置为未采样时的(默认)值会有什么好处吗?在所有这些未知值的情况下,这项研究仍然合理吗?

0 投票
1 回答
147 浏览

python - 如何在 Optuna 中建议多元比率(有界)?

我想建议 Optuna 中的比例。

该比率是X_1, X_2, ..., X_k有界的,∑X_i = 1并且0 <= X_i <= 1适用于所有i

Optuna 不提供 Dirichlet 分发。

我试过这个,但它不起作用。

我试过了,没有任何错误就完成了。但是,这是不一致的,因为自由度是k - 1有界但建议k时间的。

我如何建议有界的比率或多个变量?

这是一个简单的例子,所以它是可区分的,但我需要更复杂目标中的变量。