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

Lan*_*dau 7 machine-learning neural-network hyperparameters tensorflow keras-tuner

我想使用 kerastuner 框架进行超参数训练。

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

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

该代码一次仅选择一个优化器,并使用默认的学习率。我想将学习率传递hp.Float('lrate', min_value=1e-4, max_value=1e-2, sampling='LOG') 给每个优化器。我怎样才能嵌套它们。

Fra*_*lez 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']
    )
Run Code Online (Sandbox Code Playgroud)