首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有自定义管道的Spacy.io多线程

带有自定义管道的Spacy.io多线程
EN

Stack Overflow用户
提问于 2016-11-15 17:07:50
回答 1查看 847关注 0票数 0

我试图在自定义管道中使用Spacy.io进行语言处理,但当我向管道中添加自定义函数时,进程只在一个线程上运行。在默认情况下,管道进程使用指定的所有线程。

我是这样定义管道的:

代码语言:javascript
复制
nlp = spacy.load(language, create_pipeline=custom_pipeline)

这是custom_pipeline函数:

代码语言:javascript
复制
def custom_pipeline(nlp):
    return (nlp.tagger, score_vocab_pipe)

我就是这样运行管道的:

代码语言:javascript
复制
nlp.pipe(texts, batch_size=1000, n_threads=8)

自定义管道函数是否需要支持空间多线程?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-15 20:34:12

这个职位可能会让您更好地理解多线程是如何实现的。多线程在docs 这里中进行了描述。

简而言之:标签当前没有发布GIL,因此tagger.pipe()方法只是一个一个地应用标记器的生成器。在大多数工作负载中,标记程序应该非常快,每个进程只有一个线程,特别是因为它不需要太多内存。您可以看到多处理批处理作业这里的配方。

我们也可以释放标签周围的吉尔,以允许高效的多线程。如果你想做这件事,我们可以在追踪器或spaCy Gitter上讨论。

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

https://stackoverflow.com/questions/40615717

复制
相关文章

相似问题

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