基于Keras调谐器的分类问题超参数调谐

inn6fuwd  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(218)

我正在尝试用Keras调谐器实现分类问题和回归问题。下面是我的回归问题代码:

def build_model(hp):
        model = keras.Sequential()
        for i in range(hp.Int('num_layers', 2, 20)):
            model.add(layers.Dense(units=hp.Int('units_' + str(i),
                                                min_value=32,
                                                max_value=512,
                                                step=32),
                                   activation='relu'))
            if hp.Boolean("dropout"):
              model.add(layers.Dropout(rate=0.5))
        # Tune whether to use dropout.
    
        model.add(layers.Dense(1, activation='linear'))
        model.compile(
            optimizer=keras.optimizers.Adam(
                hp.Choice('learning_rate', [1e-4, 1e-3, 1e-5])),
            loss='mean_absolute_error',
            metrics=['mean_absolute_error'])
        return model
tuner = RandomSearch(
    build_model,
    objective='val_mean_absolute_error',
    max_trials=5,
    executions_per_trial=2,
    # overwrite=True,
    directory='projects',
    project_name='Air Quality Index')

为了将此代码应用于分类问题,必须更改哪些参数(损失、目标、度量等)?

mkh04yzy

mkh04yzy1#

要使用此代码解决分类问题,您必须更改输出层的损失函数、目标函数和激活函数。根据类的数量,您将使用不同的函数:
| 班级数|两个|两个以上|
| - -|- -|- -|
| 损失|binary_crossentropy|categorical_crossentropy个|
| 调谐器物镜|val_binary_crossentropy| val_categorical_crossentropy|
| 最后一层激活|sigmoid| softmax|

相关问题