我是神经网络的新手,我想使用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中以批处理大小和时代来实现这一点。 有什么主意吗?
答案 0 :(得分:0)
请确保在验证模型时使用测试数据,而不是相同的训练数据。使用训练数据进行验证将使您的结果产生偏差。
在您的示例中,我将使用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))