增加堆以避免WEKA中的内存不足错误

时间:2013-09-28 13:23:03

标签: heap weka

我正在尝试在WEKA中运行分类器,使用以下命令行使用J48分类器:

$ java -Xmx2048m -cp /home/weka-3-7-9/weka.jar weka.classifiers.trees.J48 -t input.arff -i -k -d J48-data.model &

虽然我的arff的大小是43.8 M,但我把堆空间增加到了2048m, 我仍然收到以下错误:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.util.ArrayList.<init>(ArrayList.java:132)
    at weka.core.Instances.initialize(Instances.java:196)
    at weka.core.Instances.<init>(Instances.java:177)
    at weka.classifiers.trees.j48.ClassifierSplitModel.split(ClassifierSplitModel.java:252)
    at weka.classifiers.trees.j48.ClassifierTree.buildTree(ClassifierTree.java:159)
    at weka.classifiers.trees.j48.C45PruneableClassifierTree.buildClassifier(C45PruneableClassifierTree.java:126)
    at weka.classifiers.trees.J48.buildClassifier(J48.java:249)
    at weka.classifiers.evaluation.Evaluation.evaluateModel(Evaluation.java:1485)
    at weka.classifiers.Evaluation.evaluateModel(Evaluation.java:649)
    at weka.classifiers.AbstractClassifier.runClassifier(AbstractClassifier.java:297)
    at weka.classifiers.trees.J48.main(J48.java:1062)

有人知道我做错了什么吗?或者可以指出一个不同的解决方案来增加堆?

提前谢谢。

3 个答案:

答案 0 :(得分:14)

Ubuntu-Users的快速说明:可以通过使用您喜欢的编辑器更改文件MEMORY="256m"中的行/usr/bin/weka来设置堆。

答案 1 :(得分:2)

Weka的instructions 声明“-Xmx ...”命令无法在简单的命令行界面中运行。我相信你应该通过编辑RunWeka.ini文件来增加堆大小。我提供的链接应该指向正确的方向。

答案 2 :(得分:1)

在终端中使用此命令

sudo gedit /usr/bin/weka

更改行的大小

  

MEMORY =“ 256m”