web-dev-qa-db-ger.com

Erhöhen Sie die Heap-Größe in Java für Weka

Ich versuche, die Heap-Größe in Java für Weka zu erhöhen, was immer wieder abstürzt. Ich habe die vorgeschlagene Linie benutzt:

> Java -Xmx500m -classpath

ich erhalte jedoch die folgende Fehlermeldung:

-classpath requires class path specification

Ich bin nicht sicher, was das bedeutet. Irgendwelche Vorschläge?

18
screechOwl

Was ich fand, war das eigentliche Problem in der Datei 'RunWeka.ini' in '\Program Files (x86)\Weka-3-6'. Ich habe es mit dem Notizblock geöffnet und in der Mitte der Datei befindet sich eine Zeile 'maxheap = 512m'

Ich änderte die Zeile in 'maxheap=2000m', speicherte die Datei und lud weka neu und dies behebte meine Probleme. 

Ich bin nicht sicher, ob dies der richtige Weg ist oder nicht, aber es hat für mich funktioniert.

21
screechOwl

Lassen Sie die -classpath-Option aus. Verwenden Sie nur die Option -Xmx500m.

Also statt nur:

Java weka.core.Instances data/soybean.arff

sie machen:

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

Wenn Sie weka über ein Skript ausführen (z. B. RunWeka.bat), müssen Sie dieses Skript ändern (mit einem Texteditor wie Notepad).

11
Michał Šrajer

Führen Sie diesen Befehl in Ihrem Terminal aus:

Java -Xmx1024m -jar weka.jar
10
Dulith De Costa

Wenn Sie Weka 3.8.1 unter Windows verwenden, können Sie sich viel Ärger ersparen, indem Sie den Parameter javaOpts bearbeiten. Der Parameter maxheap wird nicht mehr verwendet. Sie können javaOpts wie folgt in RunWeka.ini file einstellen:

javaOpts= -Xmx1040m

Dabei ist 1040m die Menge an Speicher, die Sie zuweisen möchten. 

Beachten Sie, dass bei der Datei die Groß- und Kleinschreibung beachtet wird.

Es gibt viele Möglichkeiten, dies einzurichten, aber dies ist der schnellere Weg, um Weka in einer Windows-Umgebung mit dieser Version zum Laufen zu bringen.

Bearbeiten: Wenn Weka mehr als 1gb unter Windows verwenden soll, muss JDK installiert sein. Regelmäßige JRE macht es nicht.

8
Wesley Costa

Die offizielle Weka-Antwort (für alle Betriebssysteme und Weka-Versionen) finden Sie unter http://weka.wikispaces.com/OutOfMemoryException .

Falls Sie eine aktuelle Weka-Version unter Windows verwenden, ist die Antwort :

Ändern Sie den Parameter maxheap in der Datei RunWeka.ini.

5
Robert Pollak

Nach -classpath müssen Sie einen Klassenpfad angeben. Ähnlich wie bei der Variablen PATH env müssen Sie den Pfad angeben, in dem Java die Klassen finden kann.

Die Einstellung -Xmx500m sieht gut aus, außer dass ich vorschlagen würde, 512m zu verwenden.

3
Jonas

Unter Ubuntu hatte ich das gleiche Problem Aber ich löse es, indem ich den Speicherplatz für die Java Virtual Machine Führen Sie das aus: Weka -m 1024m

3
Ali Dabour

Für Mac OS müssen Sie eine Konfigurationsdatei bearbeiten, um die Heap-Größe der Weka UI-Anwendung zu erhöhen.

Ich wiederhole, was ich geschrieben habe: Gibt es eine Problemumgehung, um den Speicherfehler "Java-Heap-Speicher" zu beheben, wenn der maximale Heap-Wert bereits angegeben wurde?

  1. Beenden Sie Weka, wenn es läuft.

  2. cd in /Applications/weka-XXX.app/Contents oder wo auch immer Ihre Weka-Programmdatei installiert wurde. Dort befindet sich eine Datei mit dem Namen Info.plist. Es ist eine XML-Textdatei. Ich empfehle Ihnen, eine Kopie an einem anderen Ort zu speichern, da Sie sie im nächsten Schritt bearbeiten müssen.

  3. Öffnen Sie die Info.plist (XML) -Datei in Ihrem bevorzugten Texteditor und suchen Sie nach einem Block mit der Aufschrift "VMOptions". Es sollte einen Wert geben, der "-Xmx256M" oder etwas Ähnliches angibt, das die maximale Heapgröße angibt. Sie sollten diesen Wert in etwas Größeres wie "-Xmx1024M" ändern.

  4. Starten Sie Weka.

Weka 3.9.2 hat auch keine Option für maxheap mehr. RunWeka.ini hat die Option von javaOpts. Sie können also die unten auf Ihre erforderliche Speicherzuordnung ändern.

javaOpts=%Java_OPTS%   ---- > javaOpts= -Xmx1024m

Hier ist 1024 m die angepasste Speichermenge, die Sie zuweisen möchten.

1
monir zaman

Die offizielle Weka-Antwort ist richtig ... Aber ... entscheidend ist, zuerst alle JVM-Dateien zu entfernen und die entsprechende 32- oder 64-Bit-Java-Version zu installieren. Wenn Sie die entsprechende Version nicht verwenden, können viele Probleme auftreten, einschließlich der Unmöglichkeit, den Heapspeicher auf mehr als 1024 m zu erhöhen (durch Ändern der INI-Datei).

1
Roel

Ich verwende Weka 3.6 in Windows. Dies ist, was ich getan habe. Gehen Sie zum Weka-Installationsverzeichnis und Sie finden eine RunWeka.bat-Datei. Öffnen Sie diese Datei in einem Texteditor und fügen Sie in der Java-Befehlszeile das Argument -Xmx hinzu.

b. 4 GB Speicher, % _ Java% -Xmx4096m -classpath. RunWeka -i.\RunWeka.ini -w.\Weka.jar -c% _cmd% "% 2"

1
Rahav

Wenn Sie weka über die Befehlszeile ausführen, jedoch nicht über Java, d. H., Indem Sie weka in die Befehlszeile eingeben, anstatt zu tippen

weka

geben Sie das Speicher-Flag an

weka -m 1024m

Dies gibt 1024 Megabyte an.

0
Blubber

Sie sollten auch sehen, ob die standardmäßige Threadstapelgröße von 20 MB ausreicht. Erhöhen Sie den Wert in der Datei /Applications/weka-3-8-1-Oracle-jvm.app/Contents/Info.plist (auf MAC) wie folgt auf 50 MB. 

<string>-Xss50M</string>
0

Am besten machen Sie es mit diesem Befehl

    Java -Xmx1024m -[weka classifier] -t [training file path]
0

Die Antworten sind zu alt (das letzte ist vor 1 Jahr) ... Ich hatte dasselbe Problem mit meiner WEKA (Version 3.8.1) unter Windows 10.

Ich hatte ein Problem beim Aktualisieren der Heap-Größe. So habe ich das Problem behoben, indem eine Umgebungsvariable (unter Systemsteuerung) wie folgt hinzugefügt wurde:

Java_OPTS = -Xms30000m -Xmx30000m

Tipp : Stellen Sie nur sicher, dass RunWeka.ini diese Umgebungsvariable verwendet.

Im obigen Beispiel gebe ich WEKA 30 GB. Es klappt. 

Ich hoffe, es wird für manche Menschen hilfreich sein.

0
Samer Aamar

Wenn Sie Weka Workbench CLI oder Knowledge Explorer verwenden, müssen Sie Ändern Sie wie folgt.

Wie in der Dokumentation vorgeschlagen, sollte der Laufzeitparameter -Xmx [size_required] m sein, wobei [size_required] die Speichergröße ist, die Sie beibehalten möchten, um Speicherausnahmen zu vermeiden.

Öffnen Sie RunWeka.ini

Definieren Sie maxheap = [size_required] G

In meinem Fall behielt ich maxheap = 4G. Man kann wie maxheap = 4096m festlegen und füge allen Laufoptionen in # setups (vorangestellt mit "cmd_") --Xmx # maxheap # neben Java-Befehlen .__ ein. Wie unten

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

Überprüfen Sie dies ebenfalls, indem Sie Weka und Help >> SystemInfo neu starten

0
Prateek