如何使用keras tuner优化函数?

6qftjkof  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(299)

如何使用keras调谐器调整优化函数?我想试试sgd,亚当和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"])

但这并不是一个 Choice 只能包含一种类型的值“

soat7uwm

soat7uwm1#

也许最好的办法是这样做:

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 只允许int,float,bools和string,所以我看不到这样做的方法。

相关问题