gpt4 book ai didi

python - 在 scikit-learn 中训练神经网络时提前停止

转载 作者:太空狗 更新时间:2023-10-30 02:11:29 33 4
gpt4 key购买 nike

这个问题是针对 Python 库 scikit-learn 的。请让我知道将其发布到其他地方是否更好。谢谢!

现在问题...

我有一个基于 BaseEstimator 的前馈神经网络类 ffnn,我使用 SGD 对其进行训练。它运行良好,我还可以使用 GridSearchCV() 并行训练它。

现在我想在函数 ffnn.fit() 中实现提前停止,但为此我还需要访问折叠的验证数据。这样做的一种方法是更改​​ sklearn.grid_search.fit_grid_point() 中的行

clf.fit(X_train, y_train, **fit_params)

变成类似的东西

clf.fit(X_train, y_train, X_test, y_test, **fit_params)

并更改 ffnn.fit() 以接受这些参数。这也会影响 sklearn 中的其他分类器,这是一个问题。我可以通过检查 fit_grid_point() 中的某种标志来避免这种情况,该标志告诉我何时以上述两种方式之一调用 clf.fit()。

有人可以建议一种不同的方法来执行此操作,而我不必在 sklearn 库中编辑任何代码吗?

或者,进一步将 X_train 和 y_train 随机分成训练/验证集并检查一个好的停止点,然后在所有 X_train 上重新训练模型是否正确?

谢谢!

最佳答案

例如,您可以使用 train_test_split 函数让您的神经网络模型在内部从传递的 X_trainy_train 中提取验证集.

编辑:

Alternatively, would it be right to further split X_train and y_train into train/validation sets randomly and check for a good stopping point, then re-train the model on all of X_train?

是的,但那会很贵。您可以只找到停止点,然后再对用于查找停止点的验证数据进行一次额外传递。

关于python - 在 scikit-learn 中训练神经网络时提前停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21929205/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com