SKLEARN实例方法上的多处理

时间:2019-02-17 15:54:03

标签: python multithreading scikit-learn multiprocessing

我习惯于 map starmap 池方法在任何可迭代对象上分配 FUNCTION 。通常,这是我从熊猫数据帧的原始内容列中提取词干的方式:

pool = mp.Pool(cpu_nb)
totalvocab_stemmed = pool.map(tokenize_and_stem, site_df["raw_content"])
pool.close()

a good article on function parallelization in python

到目前为止,一切都很好。但是,有没有一种简便易行的方法可以并行执行sklearn METHODS 。这是我想要分发的示例

tfidf_vectorizer = TfidfVectorizer(max_df=0.6, max_features=200000,
                             min_df=0.2, stop_words=stop_words,
                             use_idf=True, tokenizer=tokenize_and_stem, ngram_range=(1,3))

tfidf_matrix = tfidf_vectorizer.fit_transform(self.site_df["raw_content"])

tfidf_matrix 不是逐个元素的列表,因此将 site_df [“ raw_content”] 拆分为与我在CPU中具有内核的数量一样多的元素来执行GOF池,以后不能将所有内容堆叠在一起。我看到了一些有趣的选项

  • IPython.parallel客户端source
  • 将sklearn.externals.joblib的parallel_backend函数用作上下文source

我可能很愚蠢,但两次尝试都不是很成功。你会怎么做?

0 个答案:

没有答案