问题标签 [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.
keras-tuner - Kerastunner 分布式调谐 - 如何告诉主管搜索已完成
我想使用Kerastuner
分布式调整并遵循https://keras-team.github.io/keras-tuner/tutorials/distributed-tuning/中概述的详细信息。chief
但是,即使完全探索了搜索空间,我的所有工作节点也会在我的进程保持运行时优雅地完成。理想情况下,一旦工人完成所有搜索,我希望能够做出某些总结报告。但是,即使搜索空间被充分探索,主要进程似乎仍在运行。有没有办法解决这个问题?
python - RuntimeError:构建失败的尝试太多
我想使用 Keras Tuner 使用以下代码调整模型超参数,该代码首先创建类以进行如下优化
** 我运行课程,但是当我尝试使用任何调谐器时,例如随机搜索、超频带等。我收到以下错误**
** 谁能帮我解决这个问题。**
tensorflow - 使用 keras Tuner 设置模型时,是否需要在条件范围内定义层中的单元数?
根据此处和此处的 Keras Tuner 示例,如果您想使用超参数定义深度学习模型中的层数和每个层的单元,您可以执行以下操作:
但是,正如其他人在此处和此处指出的那样,在 oracle 看到带有它的模型后,num_layers = 10
它总是会为unit_0
through分配一个值unit_9
,即使num_layers
小于 10 也是如此。
num_layers = 1
例如,仅unit_0
用于构建模型的情况。但是,unit_1
通过unit_9
将在超参数中定义和激活。
预言机是否“知道”unit_1
通过unit_9
实际上并未用于构建模型(因此忽略它们与影响该试验结果的相关性)?
或者,它是否假设unit_1
因为unit_9
它们已被定义而被使用(hp.get('unit_9')
例如调用将返回一个值)?
在后一种情况下,预言机使用错误信息来驱动调整过程。因此,由于将相关性分配给未使用的超参数(在最坏的情况下),收敛(最好情况下)和错误地收敛到解决方案将需要更长的时间。
模型是否应该像这样使用条件范围来定义?
当像这样定义模型时,如果num_layers < 10
,调用hp.get('unit_9')
将返回 a ValueError: Conditional parameter unit_10 is not currently active
,正如预期的那样。
tensorflow - 在 Tensorboard 中查看来自 Keras Tuner 的日志
我正在使用 Keras Tuner 调整神经网络
我正在以这种方式创建日志:
这给了我这个日志文件目录:
我可以通过写来获得摘要
甚至得到最好的模型使用
但我也想更详细地探索运行,看看是否有任何模式。为此,我想使用 TensorBoard,但如果我写:
我只得到一个空的 TensorBoard。我猜这里的问题是 Keras Tuner 和 TensorBoard 以不同的文件格式写入日志。
我的问题是,是否有人能够在 Keras Tuner 中运行超参数优化,然后在 TensorBoard 中查看日志文件?
tensorflow - Anaconda 在 tensorflow 环境中安装 keras-tuner
我正在使用 Anaconda 3 并想在 tensorflow 环境中安装 keras-tuner。我试过了
conda install -c conda-forge keras-tuner
在 Anaconda Prompt(请参阅https://anaconda.org/conda-forge/keras-tuner)中运行良好。但是,该软件包已安装在基础环境中(而不是在 tensorflow 环境中)。如何选择安装 keras-tuner 的环境?我在 Windows 机器上使用 tensorflow 2.1.0
machine-learning - 将参数发送到 Keras Tuner 模型构建器函数
我想将参数发送到Keras Tuner的模型构建器函数以进行参数化
- 密集/辍学的层数,
- 神经元的数量,
- 激活,
- 和优化器
用于超参数调整。
但是,我无法将参数发送到模型构建器函数。我的代码:
在上面的代码中,我向HyperParameters()
实例添加了一些选项,以便在模型构建器函数中获取它们。但是在那个函数中,要获取一些其他的参数,我不知道它们是如何默认添加的。
我希望能够从模型构建器功能中发送选择并能够在内部使用它们。
tensorflow - 使用 Keras Tuner 调整模型时如何跳过有问题的超参数组合?
使用 Keras Tuner 时,似乎没有办法允许跳过有问题的超参数组合。例如,Conv1D 层中的过滤器数量可能与后续 MaxPooling1D 层中池大小的所有值不兼容,从而导致模型构建错误。但是,在运行调谐器之前可能不知道这一点。一旦调谐器运行,这将导致将终止整个调谐过程的错误。有没有办法跳过任何导致错误的超参数组合?
示例代码:
错误信息:
tensorflow - 使用 Keras Tuner 调整预先存在的模型
我将Keras Tuner视为一种进行超参数优化的方法,但我看到的所有示例都显示了一个全新的模型正在定义中。例如,来自 Keras Tuner Hello World:
我已经有一个想要调整的模型,但这是否意味着我必须用拼接到身体的超参数重写它,如上所述,或者我可以简单地将超参数传递给顶部的模型?例如像这样:
据我所知,上述方法似乎有效。模型初始化参数都通过一个HyperParameters
实例传递给内部 TF 层,并从那里访问......虽然我不太确定如何传递它......我认为可以通过预定义一个HyperParameters
对象和将其传递给调谐器,然后将其传递给build_model
:
在内部,我的模型有两个 RNN(LSTM 或 GRU)和一个 MLP。但是我还没有遇到过一个 Keras Tuner build_model
,它采用这样的现有模型,只需传入超参数。该模型非常复杂,我想避免重新定义它(以及避免代码重复)。
tensorflow - 使用 Keras Tuner 进行时间序列拆分
是否可以使用 Keras 调谐器使用 Time Series Split 调整 NN,类似于 sklearn.model_selection.TimeSeriesSplit 中的 sklearn.model_selection.TimeSeriesSplit。
例如,考虑来自https://towardsdatascience.com/hyperparameter-tuning-with-keras-tuner-283474fbfbe的示例调谐器类
调谐器:
因此validation_split = 0.2
,在上面的行中,可以执行以下操作而不是
python - 使用 TensorFlow Dataset 和 Keras Tuner 处理高度不平衡的数据集
我有一个高度不平衡的文本文档数据集(3% 是,87% 否),包含标题和摘要特征。我已将这些文档转换为tf.data.Dataset
带有填充批次的实体。现在,我正在尝试使用深度学习来训练这个数据集。在model.fit()
TensorFlow 中,你有class_weights
处理类不平衡的参数,但是,我正在寻找使用keras-tuner
库的最佳参数。在他们的超参数调谐器中,他们没有这样的选择。因此,我正在寻找其他解决阶级不平衡的选择。
有没有使用班级权重的选项keras-tuner
?补充一点,我已经在使用这个precision@recall
指标了。我也可以尝试一种数据重采样方法,例如imblearn.over_sampling.SMOTE
,但正如这篇Kaggle 帖子所提到的:
SMOTE 似乎无助于改善结果。但是,它使网络学习更快。此外,还有一个大问题,这种方法不兼容更大的数据集。您必须对嵌入的句子应用 SMOTE,这会占用太多内存。