Поиск по сетке для настройки моего ANN с использованием оболочки KerasClassifier, застрявшей в эпоху 1/1 - PullRequest
0 голосов
/ 23 мая 2019

Я пытаюсь обучить простой NN с 1 скрытым слоем для бинарной классификации.Пытался использовать GridSeachCV, чтобы получить лучшие параметры, но обучение не выйдет за рамки первой эпохи.

Не получает никаких значений для best_parameters = gridSearchCV.best_params_ и best_accurcy = gridSearchCV.best_score_ после его остановки.

Код

def build_classifier_grid(optimizer):
    classifier_grid = Sequential()
    classifier_grid.add(Dense(output_dim = 6, init = 'uniform',activation = 'relu', input_dim = 11))
    classifier_grid.add(Dense(output_dim = 6, init = 'uniform',activation = 'relu'))
    classifier_grid.add(Dense(output_dim = 1, init = 'uniform',activation = 'sigmoid'))
    classifier_grid.compile(optimizer = optimizer, loss = 'binary_crossentropy', metrics = ['accuracy'])
    return classifier_grid

classifier_grid = KerasClassifier(build_fn = build_classifier_grid)

parameters = {'batch_size': [25,32], 
              'nb_epoch' : [100, 500],
              'optimizer': ['adam', 'rmsprop']}

gridSearchCV = GridSearchCV(estimator = classifier_grid, 
                            param_grid = parameters, 
                            scoring = 'accuracy', 
                            cv = 10)

gridSearchCV = gridSearchCV.fit(X_train, y_train)

Как:

Epoch 1/1
7200/7200 [==============================] - 5s 676us/step - loss: 0.5647 - acc: 0.7961
Epoch 1/1
7200/7200 [==============================] - 5s 681us/step - loss: 0.5626 - acc: 0.7950
Epoch 1/1
7200/7200 [==============================] - 5s 684us/step - loss: 0.5523 - acc: 0.7956
"
"
Epoch 1/1
7200/7200 [==============================] - 10s 1ms/step - loss: 0.6167 - acc: 0.7929
Epoch 1/1
8000/8000 [==============================] - 11s 1ms/step - loss: 0.5504 - acc: 0.7959

1 Ответ

2 голосов
/ 23 мая 2019

Это не застряло вообще, это просто тренировка каждой модели только для одной эпохи, которая является значением по умолчанию.Проблема в том, что вы используете параметр nb_epoch, а в Keras 2.x правильным именем является epochs.

...