使用 Weka 进行 Java 编程 - 增加 Java 堆的特殊步骤?

Java programming with Weka - special steps to increase Java heap?

提问人:Hack-R 提问时间:1/27/2017 最后编辑:Hack-R 更新时间:1/27/2017 访问量:250

问:

我在 Netbeans 中有一个 Java 程序,在 Windows 7 上运行。Windows 和 Java 都是 64 位的。我的电脑有 16GB 的 RAM,大部分是免费的。

当我运行程序时,我点击了一个步骤,我正在构建一个算法,我得到了

线程“main”java.lang.OutOfMemoryError 中的异常:Java 堆空间

每次,无论 -Xmx-Xms 设置如何,也无论输入数据集的大小如何。

现在,我知道如果我使用 Weka 程序,而不是使用 Weka 库进行编程,由于某种原因,这将不起作用,您必须编辑 .使用库进行 Java 编程时,是否需要一些类似的特殊步骤来增加堆?-Xmx.ini

完整的错误是:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
  at weka.filters.supervised.attribute.NominalToBinary.convertInstanceNominal(NominalToBinary.java:619)
  at weka.filters.supervised.attribute.NominalToBinary.convertInstance(NominalToBinary.java:460)
  at weka.filters.supervised.attribute.NominalToBinary.input(NominalToBinary.java:225)
  at weka.filters.Filter.useFilter(Filter.java:692)
  at weka.classifiers.trees.lmt.LMTNode.tryLogistic(LMTNode.java:515)
  at weka.classifiers.trees.lmt.LMTNode.buildClassifier(LMTNode.java:183)
  at weka.classifiers.trees.LMT.buildClassifier(LMT.java:277)
  at RRO.chooseAlgorithm.chooseAlgorithm(chooseAlgorithm.java:86)
  at RRO.SilverBullet.main(SilverBullet.java:36)
C:\Users\jmiller\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53:

Java 返回:1 生成失败(总时间:23 秒)

爪哇 维卡

评论

0赞 Kayaman 1/27/2017
没有特殊步骤。你有没有观察过堆(例如)看看发生了什么?jvisualvm
0赞 Hack-R 1/27/2017
@Kayaman我真的不知道该怎么做,但我会研究它。感谢您在评论中的更新/建议。我在上面。
1赞 Laf 1/27/2017
Weka 是否有可能仍然使用 .ini 文件,即使用作库?我发现的关于这个主题的所有内容都涉及该文件。
1赞 Kayaman 1/27/2017
@Laf 不是真的,除非库以一种奇怪的方式使用。如果它像任何其他 Java 库一样使用,那么它对内存设置没有任何可说的,因为它必须使用父 JVM 提供的内存设置。你之所以只能找到关于文件的信息,是因为 Weka 是一个 Java 程序,所以在 Google 中很难区分你说的是一个库,而不是独立程序。.ini
0赞 Hack-R 1/27/2017
我可以尝试任何故障排除步骤吗?我以前在服务器上编写过 Java Weka 程序,没有任何问题,但有几件事不同,包括操作系统、资源大小等。虽然高内存使用率是可能的,但对我来说,我根本无法在具有 -Xmx 可用几 GB RAM 的小型测试数据集(如 Iris 数据)上训练算法,这对我来说似乎很奇怪。我已经下载并正在学习。更新实际上 visualvm.github.io/idesupport.html 告诉我只使用 Netbeans Profiler 而不是 jvisualvm。我在上面。jvisualvm

答: 暂无答案