如何在keras-tuner中为超参数训练选择优化器和学习率

How to choose optimizer and learning rate for hyperparameter training in keras-tuner

我想使用 kerastuner 框架。

如何选择优化器不同的学习率 可以传递给优化器。 这是我的model.compile()方法。

        model.compile(
        loss=BinaryCrossentropy(from_logits=True),
        optimizer=hp.Choice('optimizer', values=['adam', 'adagrad', 'SGD']),
        metrics=['accuracy']
        )

该代码只选择了一个优化器 一次,并会使用默认的学习率。 我想通过 hp.Float('lrate', min_value=1e-4, max_value=1e-2, sampling='LOG') 传递学习率 给每个优化器。我如何嵌套它们。

试试这个:

# Select optimizer    
optimizer=hp.Choice('optimizer', values=['adam', 'adagrad', 'SGD']

# Conditional for each optimizer
if optimizer == 'adam':
   .....
elif optimizer == 'adagrad':
   .....
elif optimizer == 'SGD':
   .....

# Now compile your model with previous param
model.compile(
    loss=BinaryCrossentropy(from_logits=True),
    optimizer=optimizer,
    metrics=['accuracy']
    )