Как настроить l2 регуляризатор, используя gridsearchCV, используя последовательную модель keras - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь настроить гиперпараметр kernel_regularizer, используя gridsearchCV, но gridsearchCV постоянно говорит мне, что имена параметров, которые я ввожу для kernel_regularizer, не являются реальными параметрами

Я пробовал разные имена параметров, такие как l2, kernel_regularizer, kernel, регуляризаторы. L2, регуляризаторы. L2 (), но ни одно из них не сработало.

Я также посмотрел онлайн, но не могу найти документацию по этой проблеме

Моя последовательная модель использует kernel_regularizer = l2 (0.01)

param_grid = {'kernel_regularizer': [0.01,0.02,0.03]}

grid = GridSearchCV(...)
grid.fit(x_train, y_train) #this is where I get the error: 
                           #ValueError: kernel is not a legal parameter

1 Ответ

0 голосов
/ 19 мая 2019

Вы должны обернуть свою модель, используя KerasClassifier для sklearn GridSearchCV для работы.

def get_model(k_reg):
    model = Sequential()
    model.add(Dense(1,activation='sigmoid', kernel_regularizer=k_reg))
    model.compile(loss='binary_crossentropy',optimizer='adam', metrics=['accuracy'])
    return model

param_grid = {
    'k_reg': [ regularizers.l2(0.01), regularizers.l2(0.001), regularizers.l2(0.0001)]
}

my_classifier = KerasClassifier(get_model, batch_size=32)
grid = GridSearchCV(my_classifier, param_grid)

grid.fit(np.random.rand(10,1),np.random.rand(10,1))

Keras Doc , подробный пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...