我目前正在尝试使用Keras训练回归网络。为了确保我得到适当的训练,我想使用交叉验证进行训练。
问题在于,似乎Keras没有支持交叉验证的函数,是这样吗?
我找到的唯一解决方案似乎是使用scikit的test_train_split,并手动为每个k折运行model.fit。难道没有已经集成好的解决方案,而不是手动进行吗?
我目前正在尝试使用Keras训练回归网络。为了确保我得到适当的训练,我想使用交叉验证进行训练。
问题在于,似乎Keras没有支持交叉验证的函数,是这样吗?
我找到的唯一解决方案似乎是使用scikit的test_train_split,并手动为每个k折运行model.fit。难道没有已经集成好的解决方案,而不是手动进行吗?
有一个scikit learn的Keras包装器可以帮助您轻松完成这项工作: https://keras.io/scikit-learn-api/
我建议阅读Jason Brownlee博士的示例: https://machinelearningmastery.com/regression-tutorial-keras-deep-learning-library-python/
def baseline_model():
# create model
model = Sequential()
model.add(Dense(13, input_dim=13, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))
# Compile model
model.compile(loss='mean_squared_error', optimizer='adam')
return model
estimator = KerasRegressor(build_fn=wider_model, nb_epoch=100, batch_size=5, verbose=0)
kfold = KFold(n_splits=10, random_state=seed)
results = cross_val_score(pipeline, X, Y, cv=kfold)