如何在Keras-Tuner中选择超参数训练的优化器和学习率

7

我希望使用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')向每个优化器传递学习率。 我该如何嵌套它们?

1个回答

8

尝试使用以下方法:

# 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']
    )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接