跳转至

KerasTuner 的使用

本文正在编写中

声明

由于该文章为本人大一时为“科学与社会”研讨课学习需要而创作。由于作者才疏学浅,在严谨性上可能存在缺陷。

本文章为我为“科学与社会”研讨课之需要,对 KerasTuner 的学习笔记。部分内容摘录、翻译自其官方网站

KerasTuner 是一个通用目的的超参数调节库,它和 Keras 的工作流有着紧密的集成。

对识别 Fashion MNIST 的神经网络调节超参数

以一个简单的单层神经网络为例,我们可能这样用 Keras 描述它的模型:

def build_model():
    model = keras.Sequential()
    model.add(layers.Flatten())
    model.add(layers.Dense(128, activation='relu'))
    model.add(layers.Dense(10, activation='softmax'))
    return model

使用 KerasTuner 最简单的方法就是,用 hp.Int()hp.Float()hp.Choice() 等方法代替具体的数字,如:

def build_model(hp : keras_tuner.HyperParameters):
    model = keras.Sequential()
    model.add(layers.Flatten())
    model.add(layers.Dense(
        hp.Int('units', min_value=32, max_value=512),
        activation=hp.Choice('activation', values=['relu', 'tanh', 'sigmoid']),
    ))
    model.add(layers.Dense(10, activation='softmax'))
    return model

之后我们就可以用 RandomSearchBayesianOptimizationHyperband 等方法进行搜索,具体的使用方法在这里有很好的讲解,这里就不翻译了。