问题标签 [keras-tuner]
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 - kerastuner - 调整层数会创建与报告不同的层数
我正在使用 kerastuner.tuner.RandomSearch 来调整超参数,包括模型的层数。但是报告的层数与创建的层数不同。例如。
在上述试验中,据报道卷积层数将为 7,但仅创建了 3 个,据报道层数为 8,但仅创建了两个。
这是我的built_model 函数的代码。
我做错了什么还是kerastuner中的错误?
python - 模型摘要为空
我正在尝试使用 keras 功能 API 构建神经网络并训练我使用 keras 调谐器的网络。该模型由一些嵌入层和一些密集层组成:
要使用调谐器,请执行以下代码:
调谐器的结果用于构建模型。
model.summary()
和的输出plot_model
为空。输出如下所示:
不知道这是否已连接,但代码运行得非常好,我只是绘制网络以查看它是如何构建的。但是,当我尝试保存模型时,我确实遇到了错误:
错误是:
我不知道这些是否相关。
python - Keras tuner.search 搜索错误给我一个与形状相关的错误“形状(无,11,11)和(无,1000,11)不兼容”
我正在开发一个用于具有 11 个类别的多标签文本分类的 LSTM 模型。当没有调整的模型运行良好时,
这给了我一个错误。keras.tuner
如果有人能指出这些错误背后的问题,我将不胜感激。我尝试将其更改为loss
,sparse_categorical_crossentropy
但它会给我带来其他错误。
这是我的设置。
tensorflow version:2.5.0, keras version:2.4.3
文字清洗
嵌入
Shape of data tensor: (10695, 1000)
Shape of label tensor: (10695, 11)
训练和测试数据
(9625,) (9625, 11)
(1070,) (1070, 11)
标记化
构建调优模型
我收到以下错误
tensorflow - Keras Tuner Hyperband - 如何设置最大试验和最大时期?
我有两个关于 Keras Tuner Hyperband 类的问题(针对回归问题)
https://keras-team.github.io/keras-tuner/documentation/tuners/#hyperband-class
与 BayesianOptimization 和 RandomSearch 不同,Tuner Hyperband(和 Sklearn)没有参数“max_trials”。定义它们的最佳方式是什么?该文档提到了(N = max_epochs,f = 3 default)的所有试验中最多N *(log(N)/ log(f))^ 2个累积时期,考虑到我通常需要max_epochs> 10000,这似乎非常高一次很好的训练。我想限制 Keras Tuner 的计算时间,例如大约一天。有没有比按 ctrl+c 取消以自动开始训练更好的方法?
当我开始使用
可以传递 epoch 数量的另一个参数。'search()' 的 'epochs' 和 'Hyperband()' 的 'max_epochs' 之间有什么关系?它们中的任何一个或公式 N*(log(N)/log(f))^2 似乎都不适合时期的总数。
我在其他地方找不到太多信息。同样在阅读了这篇论文之后,我还不清楚这一点。欢迎任何提示。谢谢!
python - 当我向 Hyperband 提供相同的参数时,没有获得与我的 NN 设计相同的评估分数
我对超参数优化有疑问。我设计了一个简单的 NN,并且正在执行 Hyperband 类以进行超参数优化。在执行超参数搜索之前,我想看看如果我给 Hyperband 模型提供与我的简单 NN 设计相同的参数,我会得到与 NN 设计相同的结果吗?但是,我无法获得相同的分数。
更具体地说,我为 Hyperband 提供了相同的参数(在我的情况下,我为搜索提供了一个值,这些值在使用 NN 时是相同的),我的期望是获得由简单 NN 产生的相同分数.
参数搜索完成后,为最佳参数创建的模型应该与 NN 设计相同,还是我遗漏了什么?
有没有人有类似问题的经验?
python - Keras BayesianOptimization 调优器在调优期间使“最佳 val_loss”变得更糟
我正在使用 Keras 调谐器调整模型BayesianOptimization
。调整目标是val_loss
在每个 epoch 之后计算的。据我了解,调谐器将通过各种超参数配置并训练模型,同时跟踪val_loss
. 它保存模型在最低(最佳)时期的模型权重val_loss
。调优后,调优方法get_best_models
返回val_loss
在其训练中的任何时候都具有最佳性能的模型。
但是,查看调整日志,我注意到最终假定的最佳val_loss
值实际上并不是val_loss
它在调整期间报告的最低值。在日志中,您可以看到在试验 64 之后“迄今为止最好的”如何val_loss
增加到 0.431,而试验 64 的情况要差得多val_loss
。
这是日志的摘录:(我在训练中省略了日志行...
)
调优总结表明最好val_loss
的是 0.400,即使它一定在某个时候找到了一个模型,val_loss
它实际上是更好的 0.396。(确切地说是在试验 58 中)
这是创建调谐器的代码:
并开始调整过程:
为什么“最好”的模型没有遇到最低的val_loss
?我误解了调谐器的工作原理还是这是一个错误?
python - Keras-Tuner:是否可以在目标/度量函数中使用测试/验证集?
keras-tuner
是否可以基于测试集而不是训练集使用 对模型性能进行评分/评估?我问这个,因为到目前为止,我的理解是度量函数tuner.search()
仅在使用中用作目标y_true
和y_pred
作为输入参数,它们都指的是训练集(如果我错了,请纠正我)。
那么如何在度量函数中使用测试数据呢?
tensorflow2.0 - Keras-tuner:我如何在 Tuner.search 中使用 loss 和 val_loss 之间的加权平均数来实现目标?
我想同时使用 loss 和 val_loss 来评估模型,因为我的数据集非常小。我不能使用 val_loss,因为它只会得到一些随机模型,碰巧测试集中的一个值被正确预测,但另一方面,仅使用损失会导致过度拟合。关于我如何实现这一目标的任何想法?
keras-tuner - 用于 LSTM 的 Kerastuner
我正在研究一个文本分类问题,并尝试使用 Kerastuner 来确定我的 LSTM 网络的最佳配置。以下是相同的代码:
keras 调谐器
代码失败并出现以下错误:
ValueError: 层 lstm_1 的输入 0 与层不兼容:预期 ndim=3,发现 ndim=2。收到的完整形状:(无,50)
谁能帮我解决这个问题?