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

python-3.x - Optuna 中是否有任何等效的 hyperopts lognormal?

我正在尝试使用 Optuna 对我的模型进行超参数调整。

我被困在一个我想定义具有对数正态/正态分布的搜索空间的地方。在hyperopt使用中是可能的hp.lognormalsuggest_是否可以使用现有api 的组合来定义这样的空间Optuna

0 投票
1 回答
1542 浏览

python - Optuna 多目标优化的最佳参数

使用Optuna执行单目标优化时,可以使用以下方法访问研究的最佳参数:

如果我想执行多目标优化,这将变成例如:

这有效,但命令study.best_params失败RuntimeError: The best trial of a 'study' is only supported for single-objective optimization.

如何获得多目标优化的最佳参数?

0 投票
1 回答
260 浏览

allennlp - 据我所知,没有办法在 AllenNLP 配置文件中参数化字符串——只有整数或浮点数

所以问题是,对于使用 AllenNLP 的自动调整(如 optuna),建议的做法是在 jsonnet 脚本中使用对环境变量的引用,然后建立一个研究来修改这些参数。

当值是整数或浮点时,这很好。对于整数,您使用std.parseInt(std.extVar(varname)),对于浮点数,您使用std.parseJson(std.extVar(varname))

但是如果我想改变,比如我的测试中的优化技术在“adam”、“sparseadam”、“adamax”、adamw”等之间,或者改变我正在使用的 RNN 的类型,似乎并不容易方法来做到这一点。

在这种情况下,您似乎应该能够std.extVar(varname)在不将其包装在parseJson()or中的情况下执行此操作parseInt(),但这会返回错误。有没有其他人遇到过这个问题,你是如何解决的?

除此之外,我正在尝试使用三个不同的字符串参数。这是第一个“bert_vocab”的 jsonnet:

错误信息:

我还尝试了像这里这样的各种“字符串转义函数”(但字符串转义函数都不起作用:

我可以执行以下操作来验证是否设置了 os 环境变量:

os.environ['bert_vocab']返回'bert-base-uncased'

0 投票
1 回答
125 浏览

optuna - 如何在 Optuna 中为每次试验选择正确的 epoch 数?

对于如何在Optuna中选择每次试验的 epoch 数,是否有经验法则?

0 投票
1 回答
344 浏览

tensorflow - 如何在 Optuna SuccessiveHalvingPruner() 中设置最小时期数?

我正在使用 Optuna 2.5 优化 tf.keras CNN 模型上的几个超参数。我想使用修剪,以便优化跳过超参数空间中不太有希望的角落。我正在使用这样的东西:

有时模型在 2 个 epoch 后停止,有时在 12 个 epoch 后停止,48 个等等。我想要的是确保模型在被修剪之前总是训练至少 30 个 epoch。我猜这个参数min_early_stopping_rate可能对此有一些控制,但我试图将它从 0 更改为 30,然后模型永远不会被修剪。有人能比 Optuna 文档更好地解释我吗,这些参数到底 SuccessiveHalvingPruner()是做什么的(特别是min_early_stopping_rate)?谢谢

0 投票
1 回答
168 浏览

python - Optuna lightgbm 集成给出分类特征错误

我使用 optuna lightgbm 集成创建模型,我的训练集有一些分类特征,我使用lgb.Dataset类将这些特征传递给模型,这是我使用的代码(注意:X_train、X_val、y_train、y_val 都是熊猫数据帧)。

每次lgb.train调用该函数时,我都会收到以下用户警告

我相信 lightgbm 没有按照应有的方式处理我的分类特征,有人知道如何解决这个问题吗?我是否正确使用了参数?

0 投票
2 回答
462 浏览

optuna - 在 Optuna 培训中关闭警告

我完全意识到我可能会因为错过一些明显的东西而感到尴尬,但这让我很难过。我正在使用 Optuna 调整 LGBM 模型,我的笔记本上充斥着警告消息,我该如何抑制它们而留下错误(以及理想的试验结果)?下面的代码

我要尽量减少的是

0 投票
1 回答
723 浏览

python - Optuna catboost 修剪

有没有办法用 CatBoost 和 Optuna 进行修剪(在 LightGBM 中很容易,但在 Catboost 中我找不到任何提示)。我的代码是这样的

0 投票
1 回答
95 浏览

hyperparameters - 限制 Optuna 中的最大并行进程数

在 Optuna 中运行超参数搜索时如何限制最大并行进程数?

0 投票
1 回答
571 浏览

python - 使用 optuna 优化时的 TensorFlow / keras 问题

我对机器学习还很陌生,我一直在尝试从 sentdex 教程中自学神经网络。我按照他关于使用循环神经网络预测各种加密货币价格的教程进行操作,并在更改 NumPy 数组和一些语法后成功了。现在我一直在尝试对其进行优化,因为我注意到通过调整学习率和网络层数会发生多么剧烈的过度拟合。

一个没有错误的代码是这个 https://colab.research.google.com/drive/1VNeRLeGBByEIdMVwXcbsOR8xjWwsHHoQ?usp=sharing

看起来我只是复制并粘贴了代码,但这只是因为我正在对代码进行故障排除,我只是用我从教程中遵循的那个来引用这个,然后在我让它工作后继续这个。

我一直在尝试遵循 optuna 的教程和我发现的用于优化在线网络的代码,所以我试图从这些来源添加它

https://github.com/optuna/optuna/blob/master/examples/tensorflow/tensorflow_eager_simple.py

https://github.com/optuna/optuna/blob/master/examples/keras/keras_integration.py

https://colab.research.google.com/drive/1-tANR7FopTX_ipAUCJmfZ2h_-iu3ljD_?usp=sharing

我想做的是这个

https://colab.research.google.com/drive/1cgnz7XUwnhfBvsA9whCXKQ3PrRs_sddh?usp=sharing

这是我遇到错误的地方。起初,当我发表这篇文章时,我被困在了

ValueError:形状 (None, 1) 和 (None, 50, 2) 不兼容

但后来我记得在我遵循教程的那一个中,我需要一个没有 return_sequences=True 的循环层,然后再继续使用密集层

所以我尝试添加另一个循环层而不返回序列,现在我得到了这个

ValueError: 层 lstm_20 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:(无,2)

我不完全确定从这里去哪里。我觉得我只是在做一些愚蠢的事情,一年来我一直在试图弄清楚如何在我自己的图像上使用教程中的卷积神经网络,因为我正在重塑而不是调整图片大小。我希望它是这样简单的。

感谢你们的所有帮助,自从我开始我的编程之旅以来,你们一直非常有帮助。