Code: Alles auswählen
def create_model (learn_rate=0.01, dropout_rate=0.5):
model = Sequential()
model.add(Dense(512, activation='relu))
model.add(Dropout(dropout_rate))
model.add(Dense(1, activation='sigmoid'))
optimizer = Adram(lr=Learn_rate))
model.compile(loss='binary_crossentropy', optimizer=optimizer, metrics=['accuracy'])
return model
model = KerasClassifier(build_fn=create_model, epochs=100, batch_size=10, verbose=0)
learn_rate = [0.0001, 0.001, 0.01]
dropout_rate = [0.0, 0.3, 0.5, 0.7]
epochs = [20, 30, 60]
param_grid = dict(learn_rate=learn_rate, dropout=dropout_rate, epochs=epochs)
grid = GridSearchCV(estimator=model, param_grid=param_grid, n_jobs=-1, cv=3)
EarlyStopping eingesetzt werden könnte? Damit könnte zumindest die Zeit für die Suche verkürzt werden. Andererseits habe ich gewisse Zweifel, ob dadurch nicht der Sinn und Zweck von GridSearchCV zerstört wird?
Wie würdet Ihr die optimale Anzahl an Epochen bestimmen?
Über Meinungen und/oder Erfahrungen dazu bedanke ich mich im voraus