首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gensim LdaMulticore不能正确处理多个进程(仅使用4个工作进程)

Gensim LdaMulticore不能正确处理多个进程(仅使用4个工作进程)
EN

Stack Overflow用户
提问于 2016-02-13 06:01:00
回答 1查看 548关注 0票数 4

我正在使用Gensim的LDAMulticore执行LDA。我有大约28M个小文档(每个文档大约100个字符)。

我给工人的参数是20,但顶部显示它只使用了4个进程。围绕它有一些讨论,它在阅读语料库时可能会很慢,比如:gensim LdaMulticore not multiprocessing? https://github.com/piskvorky/gensim/issues/288

但它们都使用MmCorpus。尽管我的语料库完全在记忆中。我的机器有非常大的RAM (250 GB),在内存中加载语料库大约需要40 GB。但即使在此之后,LDAMulticore也只使用了4个进程。我将语料库创建为:

corpus = [dictionary.doc2bow(text) for text in texts]

我不能理解这里的限制因素是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-11-15 18:52:38

我会检查一下您使用的批处理大小是多少

我发现在Batch X n_workers is number than number of documents的情况下,我无法利用所有可用的工作者。这是有意义的,因为您为每个工作人员提供了每次传递的文档数量。如果不考虑批处理值,您可能会“饿死”其中的一些。

我不确定它是否解决了您的特定问题,但这确实是许多人提到多核在多处理方面不能像预期的那样“工作”的原因

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35372917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档