超参数优化和尽早停止CNN架构

时间:2020-01-19 13:06:53

标签: validation conv-neural-network gridsearchcv early-stopping

我是一个初学者,我想通过使用早期停止来优化cnn的超参数。

我不确定下面的方法是否正确,同时可以使用尽早停止以防止模型在训练过程中过度拟合,从而为cnn架构找到最佳的超参数。

 stratKFold = StratifiedKFold(n_splits=10, shuffle=True, random_state=seed)
 scoring = {'Precision': make_scorer(precision_score, average='macro')}
 param_grid = {'number_neurons':number_neurons,'dropout_rate': dropout_rate,  
            'learn_rate':learn_rate}
 model = KerasClassifier(build_fn=base_model)
 grid_cv = GridSearchCV(estimator=model, param_grid=param_grid, cv=stratKFold, scoring=scoring, refit='acc')
 grid_result = grid_cv.fit(X, y, epochs=300, validation_data=(X_val, y_val),
                        callbacks=[EarlyStopping(monitor='val_loss', patience=10, verbose=0,
                                                 restore_best_weights=True)])

如果我正确理解我的代码,那么每次拆分后10次运行中的每一次都始终使用相同的EarlyStopping验证数据吗? 如果是这样,那我想知道这是否正确?还是不应该对10个运行中的每个运行使用不同的EarlyStopping验证数据集?

非常感谢您的所有提示

0 个答案:

没有答案