sklearn管道中的内存错误

时间:2017-03-23 10:19:31

标签: python scipy scikit-learn sparse-matrix

我在我的代码中创建一个像这样的管道

from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import SGDClassifier
from sklearn.pipeline import Pipeline

pipe = Pipeline(steps = [
        ('tfidf',TfidfVectorizer(max_df=0.5, min_df=10)),
        ('clf', SGDClassifier(loss='log', n_jobs=-1)),
])

当我开始在我的数据(大约1.4M的句子)上安装这个管道时,我看到使用的RAM快速且大量增加。

在此之后,我的内核变得死了。我想,这是因为应用TfidfVectorizer后的稀疏矩阵已转换为密集矩阵。但是SGDClassifier与稀疏矩阵一起工作,不是吗?

为什么会发生这种情况以及在这种情况下我能做些什么?

我的版本: ( python 2.7, sklearn 0.18.1, scipy 0.18.1, numpy 1.12.0 )

1 个答案:

答案 0 :(得分:0)

我犯了错误,这段代码运行良好而没有内存泄漏。