Augmenter la taille des tas en java pour weka
j'essaie d'augmenter la taille du tas en java pour weka qui continue de s'écraser. J'ai utilisé le suggère ligne:
> java -Xmx500m -classpath
mais j'obtiens l'erreur suivante:
-classpath requires class path specification
je ne suis pas sûr de ce que cela signifie. Toutes les suggestions?
15 réponses
Ce que j'ai trouvé le problème réel était dans le fichier 'RunWeka.ini'
'\Program Files (x86)\Weka-3-6'
. Je l'ai ouvert avec notepad et au milieu du fichier il y a une ligne 'maxheap = 512m'
.
j'ai changé la ligne à lire 'maxheap=2000m'
, a sauvegardé le fichier et rechargé weka et cela a corrigé mes problèmes.
Je ne suis pas sûr que ce soit la bonne façon de le faire ou pas, mais ça a marché pour moi.
omettez le -classpath
option. Utilisez juste -Xmx500m
option.
alors, au lieu de juste:
java weka.core.Instances data/soybean.arff
tu fais:
java -Xmx500m weka.core.Instances data/soybean.arff
si vous exécutez weka via un script (RunWeka.bat par exemple), alors vous devez modifier ce script (avec un éditeur de texte comme notepad).
exécutez cette commande dans votre terminal:
java -Xmx1024m -jar weka.jar
si vous utilisez Weka 3.8.1 sous Windows, vous pouvez vous épargner beaucoup de problèmes en éditant le javaOpts
paramètre. Le paramètre maxheap
n'est plus utilisé, donc vous pouvez définir javaOpts
comme ceci RunWeka.ini fichier:
javaOpts= -Xmx1040m
Où 1040m
est la quantité de mémoire à allouer.
l'Esprit que le fichier est sensible à la casse.
il y a beaucoup de façons de configurer cela, mais c'est la façon la plus rapide de faire tourner Weka sur une fenêtre environnement à cette version.
Edit: Si vous voulez Weka d'utiliser plus d' 1gb
sur windows, vous devez avoir JDK installé. Le JRE normal ne le fera pas.
réponse officielle de Weka (pour tous les systèmes d'exploitation et les versions Weka) peut être trouvé sur http://weka.wikispaces.com/OutOfMemoryException.
dans le cas où vous utilisez une version Weka récente sur Windows,la réponse est:
Modifier
maxheap
paramètreRunWeka.ini
fichier.
Vous devez spécifier un chemin de classe après -classpath
, similaire à la PATH
variable env vous devez spécifier le chemin où Java peut trouver les classes.
-Xmx500m
le réglage semble correct, sauf que je suggère d'utiliser 512m.
Sur Ubuntu, j'ai eu le même problème mais je le résoudre en augmentant la quantité de mémoire à utiliser pour la Machine Virtuelle Java exécutez ceci: weka-m 1024m
pour Mac OS, vous devez éditer un fichier de configuration afin d'augmenter la taille du tas de L'application WEKA UI.
je répète ce que j'ai écrit dans: Existe-t-il une solution de contournement pour résoudre l'erreur de mémoire "Java heap space" lorsque la valeur max heap a déjà été spécifiée?
Quittez Weka si elle est en cours d'exécution.
cd into/Applications / weka-XXX.app / Contents, ou où votre exécutable weka a été installé. Il y aura un fichier appelé
Info.plist
il n'. C'est un texte XML fichier. Je vous propose de gagner un exemplaire à un autre emplacement, vous aurez besoin de le modifier dans l'étape suivante.Ouvrir
Info.plist
(XML) dans votre éditeur de texte préféré et recherchez un bloc qui dit "VMOptions". Il devrait y avoir une valeur qui dit "-Xmx256M" ou quelque chose de similaire qui spécifie la taille maximale du tas. Vous devriez changer cette valeur en quelque chose de plus grand, comme "- Xmx1024M".Démarrer Weka.
j'exécute Weka 3.6 dans windows. C'est ce que j'ai fait. Allez dans le répertoire d'installation de Weka et vous trouverez un RunWeka.le fichier bat. Ouvrez ce fichier dans un éditeur de texte et ajoutez un argument-Xmx dans la ligne de commande java.
par exemple, cette valeur est fixée à 4 Go de mémoire, %_java% - Xmx4096m-classpath . RunWeka-I.\ RunWeka.ini -w .\ weka.jar-c %_cmd% "%2"
L'officiel Weka réponse est juste..Mais....l'essentiel est d'abord de se débarrasser de tous les fichiers JVM et d'installer la version Java 32 ou 64 bits pertinente. Le fait de ne pas utiliser la version appropriée pose de nombreux problèmes, notamment l'impossibilité d'augmenter le tas au-delà de 1024m (en changeant le fichier ini).
Weka 3.9.2 n'a plus l'option de maxheap. RunWeka.ini ont l'option de javaOpts, de sorte que vous pouvez changer le ci-dessous à votre allocation de mémoire requise,
javaOpts=%JAVA_OPTS% ---- > javaOpts= -Xmx1024m
Ici 1024m est personnalisés quantité de mémoire à allouer.
La meilleure façon de le faire en utilisant cette commande
java -Xmx1024m -[weka classifier] -t [training file path]
les réponses ci-dessus sont trop anciennes (la dernière date d'il y a 1 an). J'ai eu le même problème avec mon WEKA (version 3.8.1) sur Windows 10.
j'ai eu un problème pour mettre à jour la taille du tas , la façon dont je l'ai corrigé est en ajoutant une variable d'environnement (sous panneau de contrôle) comme suit:
JAVA_OPTS = -Xms30000m -Xmx30000m
Astuce: il suffit de s'assurer que RunWeka.ini utilise cette variable d'environnement.
dans l'exemple ci-dessus je donne WEKA 30GB. Elle fonctionne.
j'Espère qu'il sera utile pour certaines personnes.
Vous devriez aussi voir si la taille par défaut de la pile 20MB est suffisante. Augmenter la valeur à 50MB dans le fichier / Applications / weka-3-8-1-oracle-jvm.app / Contents / Info.plist (sur MAC) comme ci-dessous:
<string>-Xss50M</string>
si nous utilisons WEKA Workbench CLI ou Knowledge explorer nous devons modifier comme ci-dessous.
comme la documentation suggère que le paramètre runtime devrait être-Xmx[size_required]m où [size_required] est la taille de la mémoire que vous avez l'intention de garder pour éviter l'exception de mémoire.
Open RunWeka.ini
Définir maxheap=[size_required]G
dans mon cas j'ai gardé maxheap=4G, on peut mettre comme maxheap = 4096m et ajouter -Xmx#maxheap# pour toutes les options d'exécution à # configurations (préfixé par "cmd_") sections à côté des commandes java comme ci-dessous
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
Vérifier la même en redémarrant Weka et de l'Aide>>SystemInfo