问题标签 [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.
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)
如何控制调整哪些参数以及在哪些空间中调整,以及如何修复一些参数?
pytorch - Optuna Pytorch:目标函数的返回值不能转换为浮点数
正如您在上面看到的,我正在尝试运行 Optuna 试验来为我的 CNN 模型搜索最佳超参数。
但是,当我运行上面的代码来调整并找出我的最佳参数时,发生了跟随错误,即使我仍然得到 epoch 损失和值,试验似乎也失败了。请指教谢谢!
python - Optuna 试用版的 def__init__ 中的附加参数
正如你所看到的,def __init__
已经有了self
和in_features
作为变量。我正在考虑添加另一个变量trial
(它是 Optuna 包的一部分)以适应
在上面的代码中。请告知如何,大多数只有来源只有def __init__ (self, trial)
,这非常简单,但就我而言,我有 3 个变量要在目标中传递。
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。
下面的示例代码:
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 优化以涵盖所有这些变化?
pytorch - Pytorch CNN 上的 Optuna
我尝试在 Optuna 参数调整试验中添加过滤器 1 和 2 的数量,如下所示,但出现以下错误。试验 0 设法通过,但试验 1 没有。我对批量大小进行了调整,但使用不同的推荐批量大小会出现相同的错误格式。
pytorch - CNN forward 函数,AutoTuning 层数
正如您在上面看到的,我对参数进行了一些 Optuna 调整,包括调整层数。
我现在需要对上面的 forward 函数做同样的事情,我做了下面的伪代码,但它不会运行,请告知如何。主要问题是将 for 循环函数合并到 forward 函数中。
python - Optuna 超参数优化:定义目标函数之外的超参数空间
有人知道如何使用 Optuna API 定义目标函数之外的超参数空间吗?
我想通过初始化 Objective 类来提供超参数空间(如 metric 和 training/testing_data)。所以我可以在 optuna 的目标函数之外定义 hp 空间。由于定义 hp 空间的方法是使用试验对象完成的(并且这只存在于目标函数内部),我很难找到一种仍然在外部定义它的方法。
请参阅下面的完整代码:
任何想法如何做到这一点都会很棒。
python - 在 Optuna 研究期间动态添加/删除参数时会发生什么?
Optuna 的常见问题解答在研究期间动态调整参数范围时给出了明确的答案:它没有问题,因为每个采样器都是单独定义的。
但是添加和/或删除参数呢?Optuna 是否能够处理此类调整?
这样做时我注意到的一件事是,在结果数据框中,这些参数获取nan
其他试验的条目。能够将这些nan
s 设置为未采样时的(默认)值会有什么好处吗?在所有这些未知值的情况下,这项研究仍然合理吗?
python - 如何在 Optuna 中建议多元比率(有界)?
我想建议 Optuna 中的比例。
该比率是X_1, X_2, ..., X_k
有界的,∑X_i = 1
并且0 <= X_i <= 1
适用于所有i
。
Optuna 不提供 Dirichlet 分发。
我试过这个,但它不起作用。
我试过了,没有任何错误就完成了。但是,这是不一致的,因为自由度是k - 1
有界但建议k
时间的。
我如何建议有界的比率或多个变量?
这是一个简单的例子,所以它是可区分的,但我需要更复杂目标中的变量。