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?
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.
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).
Führen Sie diesen Befehl in Ihrem Terminal aus:
Java -Xmx1024m -jar weka.jar
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.
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 DateiRunWeka.ini
.
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.
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
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?
Beenden Sie Weka, wenn es läuft.
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.
Ö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.
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.
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).
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"
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.
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>
Am besten machen Sie es mit diesem Befehl
Java -Xmx1024m -[weka classifier] -t [training file path]
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.
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