我正在尝试用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')
为了将此代码应用于分类问题,必须更改哪些参数(损失、目标、度量等)?
1条答案
按热度按时间mkh04yzy1#
要使用此代码解决分类问题,您必须更改输出层的损失函数、目标函数和激活函数。根据类的数量,您将使用不同的函数:
| 班级数|两个|两个以上|
| - -|- -|- -|
| 损失|
binary_crossentropy
|categorical_crossentropy
个|| 调谐器物镜|
val_binary_crossentropy
|val_categorical_crossentropy
|| 最后一层激活|
sigmoid
|softmax
|