fit: передача нескольких входов с помощью sklearn.model_selection.GridSearchCV - PullRequest
0 голосов
/ 10 октября 2018

как описано в https://keras.io/models/model, Функция fit Keras * x может быть

Массив данных обучения (если модель имеет один вход) или списокNumpy массивы (если модель имеет несколько входов).Если входные слои в модели названы, вы также можете передать словарь, отображающий входные имена, в массивы Numpy.

, но это не представляется возможным с sklearn.model_selection.GridSearchCV fit.Это правда?Есть ли обходной путь?

Спасибо!

1 Ответ

0 голосов
/ 10 октября 2018

Если вы хотите использовать поиск по сетке, как в sci-kit learn, вы можете использовать оболочку KerasClassifier.Вы просто создаете свою модель в своей функции.

def create_model(dropout_rate):
    #...
model = KerasClassifier(build_fn=create_model)

param_grid = dict(dropout_rate=[0.2,0.3,0.5])
grid = GridSearchCV(estimator=model, param_grid=param_grid, n_jobs=-1)
grid_result = grid.fit(X, Y)

https://machinelearningmastery.com/grid-search-hyperparameters-deep-learning-models-python-keras/

К сожалению, этот подход ограничен, так как у вас нет проверки после каждой эпохи.Чтобы решить эту проблему, вам нужно реализовать свой собственный KerasClassifier.

https://github.com/keras-team/keras/issues/4278

...