如何启用多核选项来培训斯坦福NER模型?

时间:2015-03-20 13:39:27

标签: multithreading machine-learning nlp stanford-nlp

NER的Stanford crf分类器是否支持多核操作?

如果是,我该如何启用它?

我尝试了nthreads参数,但它显示了这一点:

  

未知属性:| nthreads |

3 个答案:

答案 0 :(得分:2)

对于训练期间的多线程,请尝试选项-multiThreadGrad。 对于测试期间的多线程,请尝试选项-multiThreadClassifier。

答案 1 :(得分:-1)

很棒的问题 - 我和你在同一条船上投票赞成。天使的答案对我有所帮助,但部分原因。我不得不深入研究代码,找出它是什么以及如何指定。这是它的关键用途:

new MulticoreWrapper<Pair<Integer, List<Integer>>, Pair<Integer, Double>>     (multiThreadGrad, (calculateEmpirical ? expectedAndEmpiricalThreadProcessor :   expectedThreadProcessor) )

根据MulticoreWrapper doc第一个参数:

  

nThreads - 如果小于或等于0,则自动确定   线程数。否则,底层的大小   线程池。

所以我现在在具有8个核心的计算机上指定-multiThreadGrad 16,但我不知道16个线程是太多还是太少。

答案 2 :(得分:-1)

尝试使用--multiThreadGrad 8

实施例:  java -Xmx20g -XX:+UseG1GC -cp /path/to/stanford/ner/jar edu.stanford.nlp.ie.crf.CRFClassifier -prop /prop/file/name-basic.prop --multiThreadGrad 8

也可以使用Runtime.getRuntime().availableProcessors()

动态设置值

src:here