将参数发送到 Keras Tuner 模型构建器函数

Posted

技术标签:

【中文标题】将参数发送到 Keras Tuner 模型构建器函数【英文标题】:Sending parameters to Keras Tuner model- builder function 【发布时间】:2020-12-25 06:38:31 【问题描述】:

我想将参数发送到Keras Tuner的model-builder函数进行参数化

dense/dropout 层数, 神经元数量, 激活, 和优化器

用于超参数调整。

但是,我无法将参数发送到模型构建器函数。我的代码:

        hp = HyperParameters()

        learning_rate = [1e-2, 1e-3, 1e-4]
        hp.Choice('learning_rate', values=learning_rate)

        layers = [1, 2, 3]
        hp.Choice("layers", values=layers)

        layer2= [500]
        hp.Choice("layer2", values=layer2)

        layer3 = [500, 400]
        hp.Choice("layer3", values=layer3)

        activations = ['relu', 'tanh', 'sigmoid']
        hp.Choice("activations", values=activations)

        tuner = kt.Hyperband(model_builder_hp_copy,
                             hyperparameters=hp,
                             objective='val_accuracy',
                             max_epochs=10,
                             factor=3,
                             directory='my_dir',
                             project_name='intro_to_kt')

在上面的代码中,我向HyperParameters() 实例添加了一些选项,以便在模型构建器函数中获取它们。但是在那个函数中,要获取一些其他的参数,我不知道默认是怎么添加的。

我希望能够从模型构建器功能中发送选择并能够在内部使用它们。

【问题讨论】:

我也有同样的问题。如果你曾经解决它,请回复评论。这几天一直在为此苦苦挣扎 【参考方案1】:

如果您有一个现有的超模型并且只想搜索几个参数(例如learning_rate),则可以将超参数参数传递给调谐器构造函数。您还需要设置tune_new_entries=False 以指定不应调整未列出的参数。对于这些参数,使用默认值。

来源:Keras Tuner documentation

【讨论】:

以上是关于将参数发送到 Keras Tuner 模型构建器函数的主要内容,如果未能解决你的问题,请参考以下文章

TensorBoard 的 Keras Tuner Trials 目录的命名

使用 Keras Tuner RandomSearch 错误进行超参数调优

Keras-Tuner:是不是可以在目标/度量函数中使用测试/验证集?

Keras Sklearn Tuner 模块“sklearn”没有属性“管道”

使用 Keras Tuner 的未知度量 val_accuracy

如何在 swift 3.0 中将此类参数发送到服务器调用