如何限制 Spacy 使用的 CPU 数量?
How do I limit the number of CPUs used by Spacy?
如何限制 Spacy 使用的 CPU 数量?
我想从一大组句子中提取词性和命名实体。由于 RAM 的限制,我首先使用 Python NLTK 将我的文档解析为句子。然后我遍历我的句子并使用 nlp.pipe() 进行提取。但是,当我这样做时,Spacy 会占用我的整个计算机; Spacy 使用所有可用的 CPU。这样不好,因为我的电脑是共享的。如何限制 Spacy 使用的 CPU 的数量?这是我迄今为止的代码:
# require
from nltk import *
import spacy
# initialize
file = './walden.txt'
nlp = spacy.load( 'en' )
# slurp up the given file
handle = open( file, 'r' )
text = handle.read()
# parse the text into sentences, and process each one
sentences = sent_tokenize( text )
for sentence in nlp.pipe( sentences, n_threads=1 ) :
# process each token
for token in sentence : print( "\t".join( [ token.text, token.lemma_, token.tag_ ] ) )
# done
quit()
我对自己问题的回答是,"Call the operating system and employ a Linux utility named taskset."
# limit ourselves is a few processors only
os.system( "taskset -pc 0-1 %d > /dev/null" % os.getpid() )
此特定解决方案将 运行 进程限制为核心 #1 和 #2。这个解决方案对我来说已经足够好了。
如何限制 Spacy 使用的 CPU 数量?
我想从一大组句子中提取词性和命名实体。由于 RAM 的限制,我首先使用 Python NLTK 将我的文档解析为句子。然后我遍历我的句子并使用 nlp.pipe() 进行提取。但是,当我这样做时,Spacy 会占用我的整个计算机; Spacy 使用所有可用的 CPU。这样不好,因为我的电脑是共享的。如何限制 Spacy 使用的 CPU 的数量?这是我迄今为止的代码:
# require
from nltk import *
import spacy
# initialize
file = './walden.txt'
nlp = spacy.load( 'en' )
# slurp up the given file
handle = open( file, 'r' )
text = handle.read()
# parse the text into sentences, and process each one
sentences = sent_tokenize( text )
for sentence in nlp.pipe( sentences, n_threads=1 ) :
# process each token
for token in sentence : print( "\t".join( [ token.text, token.lemma_, token.tag_ ] ) )
# done
quit()
我对自己问题的回答是,"Call the operating system and employ a Linux utility named taskset."
# limit ourselves is a few processors only
os.system( "taskset -pc 0-1 %d > /dev/null" % os.getpid() )
此特定解决方案将 运行 进程限制为核心 #1 和 #2。这个解决方案对我来说已经足够好了。