【问题标题】:How can I tune the optimization function with Keras Tuner?如何使用 Keras Tuner 调整优化功能?
【发布时间】:2021-04-27 15:26:16
【问题描述】:

如何使用 Keras Tuner 调整优化功能?我想试试 SGD、Adam 和 RMSprop。

我试过了:

hp_lr = hp.Choice('learning_rate', values=[1e-2, 1e-3, 1e-4])
hp_optimizer = hp.Choice('optimizer', values=[SGD(learning_rate=hp_lr), RMSprop(learning_rate=hp_lr), Adam(learning_rate=hp_lr)])

model.compile(optimizer=hp_optimizer,
              loss="sparse_categorical_crossentropy",
              metrics=["accuracy"])

但这不起作用,因为“A Choice 只能包含一种类型的值”

【问题讨论】:

    标签: python keras deep-learning keras-tuner


    【解决方案1】:

    可能最好的方法是这样做:

    hp_optimizer = hp.Choice('optimizer', values=['sgd', 'rmsprop', 'adam'])
    
    if hp_optimizer == 'sgd':
        optimizer = SGD(learning_rate=hp_lr)
    elif hp_optimizer == 'rmsprop':
        optimizer = RMSprop(learning_rate=hp_lr)
    elif hp_optimzier == 'adam':
        optimizer = Adam(learning_rate=hp_lr)
    else:
        raise
    
    model.compile(optimizer=optimizer,
                  loss="sparse_categorical_crossentropy",
                  metrics=["accuracy"])
    

    显然你想要一个更具描述性的异常(或者干脆留下它,因为它无论如何都不应该发生)。即使不同的优化器属于同一个类,IIRC hp.Choice 也只允许整数、浮点数、布尔值和字符串,所以我看不出这样的方法。

    【讨论】:

      猜你喜欢
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 1970-01-01
      • 2023-01-31
      • 1970-01-01
      • 1970-01-01
      • 2022-09-28
      相关资源
      最近更新 更多