4

我想使用 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') 给每个优化器。我怎样才能嵌套它们。

4

1 回答 1

5

试试这个:

# 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']
    )
于 2020-08-12T12:16:56.213 回答