将参数发送到Keras Tuner模型-构建器功能

问题描述

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

  • 密集/缺失层数
  • 神经元数量
  • 激活
  • 和优化器

用于超参数调整。

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

        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()实例添加了一些选择,以使它们进入模型构建器函数。但是在该函数中,要获取其他一些参数,我不知道认情况下如何添加它们。

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

解决方法

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

来源:Keras Tuner documentation