Я пытаюсь выполнить поиск по сетке по своим гиперпараметрам для настройки архитектуры глубокого обучения. У меня есть несколько вариантов ввода для модели, и я пытаюсь использовать API-интерфейс поиска сетки sklearn. Проблема в том, что API-интерфейс поиска по сетке принимает только один массив в качестве входных данных, и код дает сбой при проверке размера данных. * размер объекта). Мой код выглядит примерно так:
from keras.layers import Concatenate, Reshape, Input, Embedding, Dense, Dropout
from keras.models import Model
from keras.wrappers.scikit_learn import KerasClassifier
def model(hyparameters):
a = Input(shape=(1,))
b = Input(shape=(1,))
c = Input(shape=(1,))
d = Input(shape=(1,))
e = Input(shape=(1,))
//Some operations and I get a single output -->out
model = Model([a, b, c, d, e], out)
model.compile(optimizer='rmsprop',
loss='categorical_crossentropy',
metrics=['accuracy'])
return model
k_model = KerasClassifier(build_fn=model, epochs=150, batch_size=512, verbose=2)
# define the grid search parameters
param_grid = hyperparameter options dict
grid = GridSearchCV(estimator=k_model, param_grid=param_grid, n_jobs=-1)
grid_result = grid.fit([a_input, b_input, c_input, d_input, e_input], encoded_outputs)