首页 > 解决方案 > 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 个任务。

为什么会发生此错误?

谢谢

标签: pythonscikit-learn

解决方案


在不知道您的数据细节或您使用的实际分类器的情况下,最好的猜测是您在系统上进行了过多的计算。正如错误消息所说,可能存在过度使用内存。

您正在BaggingClassifier使用多达 50 个基本估计器(例如随机森林)执行网格搜索(至少看起来是这样)。由于默认情况下每个随机森林包含 100 棵决策树,因此这将导致训练和测试 5000 棵决策树,仅在这种情况下。

尝试使用较少数量的基本估计器n_estimators,并可能更改n_jobs参数。您必须尝试一下,但它应该可以解决问题。


推荐阅读