Как включить многоядерный вариант для обучения модели Stanford NER?

Поддерживает ли Stanford crf классификатор для NER многоядерные операции?

Если да, то как мне это включить?

я пытался nthreads параметр, но это показывает это:

Неизвестное свойство: |nthreads|

3 ответа

Для многопоточности во время обучения попробуйте параметр -multiThreadGrad . Для многопоточности во время тестирования используйте параметр -multiThreadClassifier .

Попробуйте использовать --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: здесь

Отличный вопрос - я проголосовал, потому что был в той же лодке, что и вы. Ответ Ангела также помог мне, хотя частично. Мне пришлось копаться в коде, чтобы понять, что это такое и как его указать. Вот его ключевое использование:

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

И согласно MulticoreWrapper док первый параметр:

nThreads - если значение меньше или равно 0, то автоматически определяется количество потоков. В противном случае размер основного пула потоков.

Так что я сейчас уточню -multiThreadGrad 16 на машине с 8 ядрами, хотя я не знаю, является ли 16 слишком много или слишком мало потоков.

Другие вопросы по тегам