Keras和交叉验证

4

我目前正在尝试使用Keras训练回归网络。为了确保我得到适当的训练,我想使用交叉验证进行训练。

问题在于,似乎Keras没有支持交叉验证的函数,是这样吗?

我找到的唯一解决方案似乎是使用scikit的test_train_split,并手动为每个k折运行model.fit。难道没有已经集成好的解决方案,而不是手动进行吗?

2个回答

2
不对...这似乎不是解决方案。(就我所知的而言。)

1

有一个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)

这仅适用于X为二维的情况,而不是三维的情况,例如LSTM。参考 - Shadi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接