Я попытался подготовить статистическую систему разрешения кодового пространства с данными пробной версии conll 2012 (http://conll.cemantix.org/2012/data.html). Я хотел обучить его медицинским данным. Но я начал с пробных данных conll 2012, чтобы понять конвейер статистической базы. Я взял только два файла .conll размером менее 2 МБ (eng_0012.conll, eng_0014.conll). Эти два файла содержат в общей сложности 8 учебных документов.Стэнфордское разрешение nlp-Coreference - «java.lang.OutOfMemoryError: Java heap space»
Я следил за ссылкой, чтобы построить модель.
http://stanfordnlp.github.io/CoreNLP/coref.html
(Java -Xmx60g -cp Стэнфорд-corenlp-3.7.0.jar: Стэнфорд-английский-corenlp-модели-3.7.0.jar: * edu.stanford.nlp.coref.statistical.StatisticalCorefTrainer -props)
Здесь размер кучи упоминается как 60г. Я использовал размер кучи 60 г и память подкачки 15 г и 16-ядерный процессор.
Но при создании модели я получил исключение «java.lang.OutOfMemoryError: Java heap space».
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3181)
at java.util.ArrayList.grow(ArrayList.java:261)
at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235)
at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227)
at java.util.ArrayList.add(ArrayList.java:458)
at edu.stanford.nlp.coref.statistical.Clusterer.getFeatures(Clusterer.java:661)
at edu.stanford.nlp.coref.statistical.Clusterer.access$700(Clusterer.java:27)
at edu.stanford.nlp.coref.statistical.Clusterer$State.getActions(Clusterer.java:460)
at edu.stanford.nlp.coref.statistical.Clusterer.runPolicy(Clusterer.java:225)
at edu.stanford.nlp.coref.statistical.Clusterer.doTraining(Clusterer.java:167)
at edu.stanford.nlp.coref.statistical.StatisticalCorefTrainer.doTraining(StatisticalCorefTrainer.java:127)
at edu.stanford.nlp.coref.statistical.StatisticalCorefTrainer.main(StatisticalCorefTrainer.java:146)
Когда я уменьшил учебный документ для от 8 до 4 в методе "doTraining" из "Edu/NLP/COREF/Clusterer.java Стэнфорде// статистического" класса, он побежал успешно.
int count = 1;
for (ClustererDoc trainDoc : trainDocs) {
if (count == 5) {
break;
}
count++;
examples.add(runPolicy(trainDoc, Math.pow(EXPERT_DECAY(iteration +1))));
}
Я не понимаю, почему я получаю это из исключения памяти даже после предоставления требуемой конфигурации для очень небольшого количества данных (менее 2 МБ)
Есть ли способ, чтобы оптимизировать использование памяти?
Когда я просмотрел исходный код, я нашел несколько файлов, таких как demonyms.txt, gender.data.gz, inanimate.unigrams.txt, state-abbrevations.txt и т. Д. Нужно ли создавать файлы, указывающие медицинские объекты для обучения медицинской области, чтобы получить лучшую точность?
http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html –
Посмотрите на ссылку для получения дополнительной информации –