Как включить многоядерный вариант для обучения модели 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 слишком много или слишком мало потоков.