Благодаря хорошему ответу в моем последнем посте ( Как соединить перекрестную проверку KerasClassifier, Hyperopt и Sklearn ), это очень помогает.
У меня есть еще вопросы:
если я задаю условное пространство поиска, например:
second_layer_search_space = \
hp.choice('second_layer',
[
{
'include': False,
},
{
'include': True,
'layer_size': hp.choice('layer_size', np.arange(5, 26, 5)),
}
])
space = {
'second_layer': second_layer_search_space,
'units1': hp.choice('units1', [12, 64]),
'dropout': hp.choice('dropout1', [0.25, 0.5]),
'batch_size': hp.choice('batch_size', [10, 20]),
'epochs': hp.choice('nb_epochs', [2, 3]),
'activation': 'relu'
}
Как я могу сделать гиперпараметр в качестве входных параметров для функции create_model?
Я придумаю решениеэто, но не знаю, было ли это правильным
def create_model(units1, activation, dropout, second_layer):
model = Sequential()
model.add(
Dense(units1,
input_dim=X.shape[1],
kernel_initializer="glorot_uniform",
activation=activation))
if second_layer['include']:
model.add(Dense(units=second_layer['layer_size'], activation='relu'))
model.add(Dropout(dropout))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
return model