【问题标题】:deep learning with kfold cross validation使用 kfold 交叉验证进行深度学习
【发布时间】:2020-02-24 14:52:34
【问题描述】:

我是神经网络的新手,我想使用 K 折交叉验证来训练我的神经网络。 我想用5折 50 个时代 批量大小为 64 我在 scikit 中找到了一个用于 k 折交叉验证的函数

model_selection.cross_val_score(model_kfold, x_train, y_train, cv=5)

我没有交叉验证的代码是

history = alexNet_model.fit(x_train, y_train, batch_size=batch_size, epochs=epochs, verbose=1,validation_data=(x_validation, y_validation))

我不知道如何使用 keras 和 scikit 在 python 中通过批量大小和时期来实现这一点。 有什么想法吗?

【问题讨论】:

    标签: python scikit-learn neural-network training-data


    【解决方案1】:

    确保在验证模型时使用测试数据,而不是相同的训练数据。使用训练数据进行验证会使您的结果产生偏差。

    在您的示例中,我将使用 KerasClassifier 模块而不是 numpy KFolds 模块。

    from keras.wrappers.scikit_learn import KerasClassifier
    

    导入模块后,您的代码将是(带有结果输出:

    evaluator=KerasClassifier(build_fn=baseline_model, epochs=50, batch_size=64)
    kfold=KFold(n_splits=5, shuffle=True, random_state=random_seed)
    
    results=cross_val_score(evaluator, x_test, onehot_y_test, cv=kfold)
    print("Model: %.2f%% (%.2F%%)" % (results.mean()*100, results.std()*100))
    

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 2022-11-22
      • 2019-04-28
      • 2018-08-27
      • 2020-10-27
      • 1970-01-01
      • 2015-08-06
      • 1970-01-01
      • 2017-11-08
      相关资源
      最近更新 更多