小编Aer*_*ell的帖子

多个数据集上多个模型的多处理训练

我有多个数据集,我想在这些数据集上训练多个模型。作为 data_1 的示例,我想训练随机森林和梯度增强,然后对 data_2 等进行同样的训练。

使用 multiprocessing.Pools 或 Processes 并行训练模型,还是一次循环一个模型,是最好或最有效的方法吗?机器学习模型是否应该避免多重处理,因为它们有一些内置的 scikit-learn 多重处理?

以下是我对使用池感兴趣的示例:

import numpy as np
import pandas as pd
import xgboost as xgb

from xgboost.sklearn import XGBClassifier
from sklearn.ensemble import RandomForestClassifier

from sklearn.model_selection import RandomizedSearchCV

import multiprocessing as mp
from multiprocessing import Pool, cpu_count
import os
import time
import threading

import inspect

from sklearn.datasets import load_iris


def apply_parallel_training(*fns, dataset):
    """
    Enable parallel computation and return DataFrame.
    """

    pool = Pool(mp.cpu_count()-1)

    ret_list = []

    for fn in fns:
        results …
Run Code Online (Sandbox Code Playgroud)

python-3.x scikit-learn python-multiprocessing

5
推荐指数
0
解决办法
1151
查看次数