问题标签 [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 投票
0 回答
293 浏览

flask - ValueError:数据的 DataFrame.dtypes 必须是 int、float、bool 或 categorical

我正在尝试使用烧瓶部署 XGBClassifier 模型。将值提供给网页上的相关字段后,它给了我以下错误:-

我使用了一个热编码器来编码 7 个分类变量,其余 3 个是数字的。以下是我的代码: -

这是我的 Flask (app.py) 代码:-

错误表明数据类型应该是 int、categorical、float 或 boolean。但是我已经对变量进行了编码,然后拟合了模型。那么为什么会出错呢?

提前致谢!

0 投票
2 回答
177 浏览

optuna - 设置固定参数并在研究完成后检索它们的规范方法是什么?

Optuna 允许用户使用suggest_API 搜索参数空间。这很容易也很聪明。

但是,有一些参数我想保持不变。例如,使用 Scikit-Learn 的 DBSCAN 实现:

使用suggest_API 搜索:

  • eps
  • min_samples

保持固定:

  • metric
  • n_jobs

有人可能会建议我在我的目标函数中进行硬编码metric,如下所示:n_jobs

但是,我也希望以后能够从 Optuna 研究中检索这些参数的参数。据我所知,Optuna 不提供任何study.fixed_params属性。

为了公开这些固定参数,我求助于通过suggest_API 设置它们,并且只为搜索空间提供一种可能的选项。我发现trial.params['custom'] = 42目标函数中的设置不起作用。

我对这个解决方案不满意,因为study.best_params' 输出暗示(至少对我而言)这些值是在超参数搜索期间找到的。

问题:这是实现我的目标的规范方式吗?还是有其他方法?

我是 Optuna 的新手,所以请原谅我的天真。


Optuna 版本:2.9.1

0 投票
1 回答
33 浏览

optuna - 使用并行化时如何为多个进程设置 n_trials?

当我在没有并行计算的情况下执行代码时,n_trials函数中的optimize意思是程序运行了多少次试验。当通过并行计算执行时(按照此处的教程通过在另一个控制台中再次启动它),它n_trials适用于每个进程,而不是像我想要的所有进程总和。

有没有办法确保所有并行进程的试验总和等于一个固定数字,而不管我启动了多少进程?

0 投票
1 回答
145 浏览

python - optuna 的分段错误(核心转储)

我知道这个问题已经被问过多次,但是有了其他线程的答案,我无法解决我的问题。我在命令行中运行 python 脚本python3 CTGAN_noscale.py --database_name CTGAN_noshift并收到以下错误(使用故障处理程序):

似乎问题出在 optuna 上。奇怪的是,在另一台服务器上一切正常,在更改服务器后它像这样崩溃了

更新

我发现当我不使用 docker 容器或使用没有 GPU 的 docker 容器时,问题不会发生。

0 投票
0 回答
14 浏览

optuna - Optuna 会与同名但含义不同的超参数混淆吗?

假设我想同时尝试 LGBM 和 XGBoost,它们都有几个同名的超参数:

在 LGBM 和 XGBoost 中,reg_alpha有不同的含义,因为 LGBM 工作在叶级别,而 XGBoost 工作在特征级别。所以在这种情况下,不同的值reg_alpha会产生非常不同的效果,具体取决于 的值estimator_name

Optuna 能否妥善处理此问题?还是有更好的方法我应该这样做?

0 投票
0 回答
47 浏览

tensorflow - 如何将 Optuna 与 Deepspeech 训练集成?

我正在尝试将 Optuna 与DeepSpeech集成以优化它的一些超参数。我现在坚持学习率,只是为了了解 Optuna 的工作原理,但我遇到了障碍,需要一些帮助。

我有一个功能hps_train,它是训练步骤。它将 Optuna 试验对象作为参数并返回开发损失,这是我想使用 Optuna 来最小化的。这与 中的函数完全相同train()training/deepspeech_training/train.py但有一些修改:

我还有一些辅助功能:

把它们放在一起:

当我运行此代码时,第一次运行正常完成。但是,当它尝试启动第二个时,我收到一个错误:

看起来 ValueError 抱怨某些张量与另一个张量不同。但我不明白这是怎么回事,因为我每次运行都是在一个新的 Graph 上下文中开始的,所以每个张量都应该与这个新图相关联。

Optuna 版本是 2.9.1,Tensorflow 版本是 1.15.4

如果您能深入了解我在哪里出错,或者即使这是使用 Optuna 的推荐方式,我将不胜感激。非常感谢!

0 投票
1 回答
639 浏览

python - 如何针对 Optuna 中的多个指标进行优化

如何在objectiveOptuna 的功能内同时优化多个指标。例如,我正在训练一个 LGBM 分类器,并希望为所有常见分类指标(如 F1、精度、召回率、准确率、AUC 等)找到最佳超参数集。

我该怎么做?

0 投票
1 回答
42 浏览

python - 当我有多个参数时,为什么 Optuna CSV 文件每个参数只显示 1 个项目?

我在 Python 中创建了以下代码,以便使用 Optuna 优化我的网络。

如您所见,我进行了多次激活试验而不是一次,因为我想看看当每一层都有不同的激活函数时模型是否会产生更好的结果。如您所见,我对其他参数做了同样的事情。当我返回 study.bestparams 对象时,我的困惑就开始了:

试验中的最佳参数仅产生一个参数。它没有告诉我参数在哪里使用,也没有显示我使用的其他 3 个激活函数(或其他相关参数)。有没有办法精确显示我的模型使用的最佳设置以及在哪些层?(我知道保存最好的模型和模型摘要,但这对我没有太大帮助)

0 投票
0 回答
25 浏览

optuna - 使用 OPTUNA 和 cnn_learner()

错误代码

链接到上面的图片

嗨,我正在尝试使用optuna来优化我的代码中“ cnn_learner ”的参数,但出现错误。你能帮我找出问题所在吗?谢谢!

代码:

def 目标(试验):

研究= optuna.create_study(方向='最大化')

study.optimize(目标,n_trials=3)

错误:

AttributeError:“学习者”对象没有属性“值”

0 投票
1 回答
275 浏览

python - Optuna 建议 float log=True

如何让 optuna 建议从此列表中的浮点数值:

我正在使用这个 Python 代码片段:

它正确地建议了 1e-6 和 1.0 之间的值,但它建议了该范围内的其他值,而不仅仅是上面列表中明确的值。我究竟做错了什么?