我已经用load_file
方法使得LinearSVC能够对训练集和测试集进行工作,现在我想让它在多处理器环境中能够工作。
如何在LinearSVC().fit()
和LinearSVC().predict()
函数中使用多进程呢?我还不太熟悉scikit-learn的数据类型。
我也考虑将样本拆分成多个数组,但我不熟悉numpy数组和scikit-learn的数据结构。
这样做将更容易放入multiprocessing.pool()中,将样本划分为块,进行训练,然后再合并训练集,这样会起作用吗?
编辑:
假设我们有100万个文件在训练样本集中,当我们想要将Tfidfvectorizer的处理分发到几个处理器时,我们必须分割这些样本(对于我的情况,每个样本只有两个类别,所以可以将每个类别分为500000个样本)。我的服务器有24个核心和48 GB内存,所以我想将每个主题拆分成多个块,即 1000000/24,然后在上面处理Tfidfvectorizer。就像我将Testing样本集,SVC.fit()和decide()处理一样。有意义吗?
谢谢。
PS:请勿关闭此问题。
Tfidfvectorizer
无法并行化。我们需要一个共享词汇表(例如,在集群上使用 redis 服务器)或实现一个尚不存在的HashVectorizer
。 - ogrisel