python - executor管理的worker进程意外终止
问题描述
您好我正在执行以下代码:
grid_params_bc = {
'base_estimator': [best_knn, best_rf, best_l],
'n_estimators': [10, 20, 50]
}
gs_bc = GridSearchCV(
BaggingClassifier(),
grid_params_bc,
cv=10,
verbose=1,
n_jobs=-1,
return_train_score=True,
scoring='f1_micro'
)
clf_bc = gs_bc.fit(X_train, y_train)
但我收到以下错误:
执行程序管理的工作进程意外终止。这可能是由于调用函数时出现分段错误或内存使用过多导致操作系统杀死工作人员造成的。
无论如何,我可以执行 80 的前 34 个任务。
为什么会发生此错误?
谢谢
解决方案
在不知道您的数据细节或您使用的实际分类器的情况下,最好的猜测是您在系统上进行了过多的计算。正如错误消息所说,可能存在过度使用内存。
您正在BaggingClassifier
使用多达 50 个基本估计器(例如随机森林)执行网格搜索(至少看起来是这样)。由于默认情况下每个随机森林包含 100 棵决策树,因此这将导致训练和测试 5000 棵决策树,仅在这种情况下。
尝试使用较少数量的基本估计器n_estimators
,并可能更改n_jobs
参数。您必须尝试一下,但它应该可以解决问题。
推荐阅读
- ubuntu - 在 ubuntu 中,是否有一些命令表示“追加”和“包含”?请让我看看
- android-studio - 我们从 Android Studio 切换到 Unity 并且无法唱歌
- flutter - 如何在flutter中监听整个页面的点击事件
- java - 在java中有效过滤字符串
- algorithm - 算法基本递归 - 在数组中搜索
- mysql - 获取最畅销的产品复杂的sql
- java - Memento模式中的“不违反封装”是什么意思
- flutter - 从未来检索数据
功能 - html - 如何打印包含错误的块而不在 R Markdown 中打印它们?
- webpack - Webpack 开发服务器总是使用具有多个配置的热模块替换来刷新