为weka增加java中的堆大小

问题描述 投票:19回答:16

我正在尝试增加java中的堆大小,因为weka会不断崩溃。我使用了建议的行:

> java -Xmx500m -classpath

但是我收到以下错误:

-classpath requires class path specification

我不确定这意味着什么。有什么建议?

java memory jvm weka
16个回答
21
投票

我发现实际问题出现在'RunWeka.ini''\Program Files (x86)\Weka-3-6'文件中。我用记事本打开它,在文件中间有一行'maxheap = 512m'

我改变了行读取'maxheap=2000m',保存文件并重新加载weka,这解决了我的问题。

我不确定这是否是正确的方法,但它对我有用。


1
投票

官方的Weka答案是正确的......但是....至关重要的是首先摆脱所有JVM文件并安装相关的32或64位Java版本。不使用相关版本会导致许多问题,包括不可能将堆增加到1024m以上(通过更改ini文件)。


1
投票

Weka 3.9.2也没有maxheap选项了。 RunWeka.ini可以选择javaOpts,因此您可以将以下内容更改为所需的内存分配,

javaOpts=%JAVA_OPTS%   ---- > javaOpts= -Xmx1024m

这里1024m是您要分配的自定义内存量。


0
投票

使用此命令执行此操作的最佳方法

    java -Xmx1024m -[weka classifier] -t [training file path]

0
投票

上面的答案太旧了(最后一个是1年前)。我在Windows 10上遇到了与WEKA(版本3.8.1)相同的问题。

我有一个更新堆大小的问题,我修复它的方法是添加一个环境变量(在控制面板下),如下所示:

JAVA_OPTS = -Xms30000m -Xmx30000m

提示:只需确保RunWeka.ini正在使用此环境变量。

在上面的例子中,我给了WEKA 30GB。有用。

希望它对某些人有所帮助。


0
投票

您还应该看到默认的线程堆栈大小是否足够20MB。在文件/Applications/weka-3-8-1-oracle-jvm.app/Contents/Info.plist(在MAC上)将值增加到50MB,如下所示:

<string>-Xss50M</string>

0
投票

如果我们使用Weka Workbench CLI或Knowledge explorer,我们需要更改如下。

正如文档所示,运行时参数应为-Xmx [size_required] m,其中[size_required]是您打算保留的内存大小,以避免内存异常。

打开RunWeka.ini

定义maxheap = [size_required] G.

在我的情况下,我保持maxheap = 4G,一个可以设置为maxheap = 4096m并将-Xmx#maxheap#添加到#signs(前缀为“cmd_”)的所有运行选项旁边的java命令,如下所示

cmd_default=javaw -Xmx#maxheap# ...............
cmd_console=cmd.exe /K start cmd.exe ..................
cmd_explorer=java -Xmx#maxheap# .................
cmd_knowledgeFlow=java -Xmx#maxheap#....................

maxheap=4G

通过重新启动Weka和Help >> SystemInfo来验证相同的内容


0
投票

如果从命令行运行weka但不通过java运行,即在命令行中键入weka,而不是键入

weka

指定内存标志

weka -m 1024m

这将指定1024兆字节。


11
投票

省略-classpath选项。使用-Xmx500m选项。

所以,而不仅仅是:

java weka.core.Instances data/soybean.arff

你做:

java -Xmx500m weka.core.Instances data/soybean.arff

如果您通过某些脚本运行weka(例如RunWeka.bat),那么您需要修改该脚本(使用一些文本编辑器,如记事本)。


11
投票

在终端中运行此命令:

java -Xmx1024m -jar weka.jar

8
投票

如果你在Windows上使用Weka 3.8.1,你可以通过编辑javaOpts参数来省去很多麻烦。参数maxheap不再使用,因此您可以在RunWeka.ini文件中设置javaOpts

javaOpts= -Xmx1040m

其中1040m是您要分配的内存量。

请注意该文件区分大小写。

有很多方法可以设置它,但这是让Weka在这个版本的Windows环境中运行的更快方法。

编辑:如果您希望Weka在Windows上使用超过1gb,则需要安装JDK。常规JRE不会这样做。


5
投票

官方的Weka答案(适用于所有操作系统和Weka版本)可以在http://weka.wikispaces.com/OutOfMemoryException上找到。

如果您在Windows上使用最近的Weka版本,the answer是:

修改maxheap文件中的RunWeka.ini参数。


3
投票

您需要在-classpath之后指定一个类路径,类似于PATH env变量,您需要指定Java可以找到类的路径。

-Xmx500m设置看起来很好,除了我建议使用512米。


3
投票

对于Mac OS,您必须编辑配置文件以增加Weka UI应用程序的堆大小。

我正在重复我写的:Is there a workaround to solve "Java heap space" memory error when the max heap value has been already specified?

  1. 如果Weka正在运行,请退出Weka。
  2. cd到/Applications/weka-XXX.app/Contents,或者安装了weka可执行文件的地方。那里会有一个名为Info.plist的文件。它是一个XML文本文件。我建议您将其副本保存到其他位置,因为您需要在下一步中对其进行编辑。
  3. 在您喜欢的文本编辑器中打开Info.plist(XML)文件,然后查找一个显示“VMOptions”的块。应该有一个值为“-Xmx256M”的值或与specifies the maximum heap size类似的值。您应该将该值更改为更大的值,例如“-Xmx1024M”。
  4. 开始安装。

3
投票

在Ubuntu上我有同样的问题,但我通过增加用于Java虚拟机的内存量来解决它运行:weka -m 1024m


1
投票

我在Windows中运行Weka 3.6。这就是我所做的。转到Weka安装目录,您将找到RunWeka.bat文件。在文本编辑器中打开此文件,并在java命令行中添加-Xmx参数。

例如,这设置为4GB内存,%_ java%-Xmx4096m -classpath。 RunWeka -i。\ RunWeka.ini -w。\ weka.jar -c%_cmd%“%2”

© www.soinside.com 2019 - 2024. All rights reserved.