3

我在具有 8GB RAM 的最新一代 Macbook Pro 中运行 WEKA 分类器(J48,其输入 .arff 文件由 3 个字段组成,字段 1 具有 ~27k 不同的属性,字段 2 ~ 500k 值)。我使用-Xmx 参数将 Java 堆空间增加到了最大可能:

java -Xmx7G -cp weka-3-6-10/weka.jar weka.classifiers.trees.J48 -t myfiles/loc_linear.arff -i

但是,当我运行分类器时(大约 10 分钟后),我收到错误“线程中的异常”main“java.lang.OutOfMemoryError: Java heap space ”。

显然 8GB RAM 对我的输入文件来说是不够的。这是否意味着唯一的解决方案是拥有更强大的硬件(例如 16GB RAM 或非常强大的服务器/集群)?这个问题有什么解决方法吗?(例如减少输入文件?如果是这样,您认为在减少中应用的标准是什么?)。还有其他想法或建议吗?

4

2 回答 2

5

如果您在 Mac OS X 机器上运行 Weka GUI,您可以编辑 plist 配置文件。我按照Weka 邮件列表中的说明进行操作。

  1. cd 进入 /Applications/weka-XXX.app/Contents ,或者安装你的 weka 可执行文件的任何地方。

  2. 那里会有一个名为 Info.plist 的文件。我建议您将该文件的副本保存到另一个位置,因为您需要在下一步中更改它。

  3. 在您喜欢的文本编辑器中打开 weka-XXX.app/Contents/Info.plist (XML) 文件,然后查找显示“VMOptions”的块。应该有一个值表示“-Xmx256M”,它指定了内存。将该值更改为更大的值,例如“-Xmx1024M”。

  4. 开始维卡。

于 2013-10-11T19:48:53.837 回答
0

从您引用的代码行看来,您正在从简单的命令行界面运行 Weka。如果是这种情况,那么答案与此 [question] 相同(增加堆以避免 WEKA 中的内存不足错误。)

您不能从命令行界面增加堆大小。相反,我认为您应该按照 Weka 的说明增加RunWeka.ini 文件中的堆大小

于 2013-09-29T14:22:23.207 回答